KILLED proof of input_L5LaxlT6Sb.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 6 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 0 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 5195 ms] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 2615 ms] (18) BEST (19) proven lower bound (20) LowerBoundPropagationProof [FINISHED, 0 ms] (21) BOUNDS(n^1, INF) (22) typed CpxTrs (23) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (24) CpxWeightedTrs (25) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CpxTypedWeightedTrs (27) CompletionProof [UPPER BOUND(ID), 0 ms] (28) CpxTypedWeightedCompleteTrs (29) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CpxTypedWeightedCompleteTrs (31) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 15 ms] (32) CpxRNTS (33) InliningProof [UPPER BOUND(ID), 283 ms] (34) CpxRNTS (35) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CpxRNTS (37) CompletionProof [UPPER BOUND(ID), 0 ms] (38) CpxTypedWeightedCompleteTrs (39) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (42) CdtProblem (43) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CpxRelTRS (47) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (48) CpxTRS (49) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CpxWeightedTrs (51) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CpxTypedWeightedTrs (53) CompletionProof [UPPER BOUND(ID), 0 ms] (54) CpxTypedWeightedCompleteTrs (55) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CpxTypedWeightedCompleteTrs (57) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 6 ms] (58) CpxRNTS (59) InliningProof [UPPER BOUND(ID), 625 ms] (60) CpxRNTS (61) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CpxRNTS (63) CompletionProof [UPPER BOUND(ID), 0 ms] (64) CpxTypedWeightedCompleteTrs (65) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 6 ms] (66) CpxRNTS (67) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CdtProblem (71) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 1 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem (137) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (144) CdtProblem (145) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (156) CdtProblem (157) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (160) CdtProblem (161) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (164) CdtProblem (165) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (166) CdtProblem (167) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 1 ms] (168) CdtProblem (169) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (170) CdtProblem (171) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 13 ms] (172) CdtProblem (173) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (174) CdtProblem (175) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 2 ms] (176) CdtProblem (177) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (180) CdtProblem (181) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (184) CdtProblem (185) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (188) CdtProblem (189) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (190) CdtProblem (191) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (192) CdtProblem (193) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (194) CdtProblem (195) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (196) CdtProblem (197) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (198) CdtProblem (199) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 2 ms] (200) CdtProblem (201) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (202) CdtProblem (203) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (204) CdtProblem (205) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (206) CdtProblem (207) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (208) CdtProblem (209) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (210) CdtProblem (211) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (212) CdtProblem (213) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (214) CdtProblem (215) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (216) CdtProblem (217) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (218) CdtProblem (219) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (220) CdtProblem (221) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (222) CdtProblem (223) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (224) CdtProblem (225) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (226) CdtProblem (227) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (228) CdtProblem (229) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (230) CdtProblem (231) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (232) CdtProblem (233) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 3 ms] (234) CdtProblem (235) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (236) CdtProblem (237) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (238) CdtProblem (239) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (240) CdtProblem (241) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (242) CdtProblem (243) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (244) CdtProblem (245) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (246) CdtProblem (247) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (248) CdtProblem (249) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (250) CdtProblem (251) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 175 ms] (252) CdtProblem (253) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (254) CdtProblem (255) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 128 ms] (256) CdtProblem (257) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (258) CdtProblem (259) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 295 ms] (260) CdtProblem (261) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (262) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__zeros -> cons(0, zeros) a__U11(tt, L) -> s(a__length(mark(L))) a__and(tt, X) -> mark(X) a__isNat(0) -> tt a__isNat(length(V1)) -> a__isNatList(V1) a__isNat(s(V1)) -> a__isNat(V1) a__isNatIList(V) -> a__isNatList(V) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) a__length(nil) -> 0 a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) mark(zeros) -> a__zeros mark(U11(X1, X2)) -> a__U11(mark(X1), X2) mark(length(X)) -> a__length(mark(X)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0) -> 0 mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X1, X2) -> U11(X1, X2) a__length(X) -> length(X) a__and(X1, X2) -> and(X1, X2) a__isNat(X) -> isNat(X) a__isNatList(X) -> isNatList(X) a__isNatIList(X) -> isNatIList(X) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__zeros -> cons(0', zeros) a__U11(tt, L) -> s(a__length(mark(L))) a__and(tt, X) -> mark(X) a__isNat(0') -> tt a__isNat(length(V1)) -> a__isNatList(V1) a__isNat(s(V1)) -> a__isNat(V1) a__isNatIList(V) -> a__isNatList(V) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) mark(zeros) -> a__zeros mark(U11(X1, X2)) -> a__U11(mark(X1), X2) mark(length(X)) -> a__length(mark(X)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X1, X2) -> U11(X1, X2) a__length(X) -> length(X) a__and(X1, X2) -> and(X1, X2) a__isNat(X) -> isNat(X) a__isNatList(X) -> isNatList(X) a__isNatIList(X) -> isNatIList(X) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__zeros -> cons(0, zeros) a__U11(tt, L) -> s(a__length(mark(L))) a__and(tt, X) -> mark(X) a__isNat(0) -> tt a__isNat(length(V1)) -> a__isNatList(V1) a__isNat(s(V1)) -> a__isNat(V1) a__isNatIList(V) -> a__isNatList(V) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) a__length(nil) -> 0 a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) mark(zeros) -> a__zeros mark(U11(X1, X2)) -> a__U11(mark(X1), X2) mark(length(X)) -> a__length(mark(X)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0) -> 0 mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X1, X2) -> U11(X1, X2) a__length(X) -> length(X) a__and(X1, X2) -> and(X1, X2) a__isNat(X) -> isNat(X) a__isNatList(X) -> isNatList(X) a__isNatIList(X) -> isNatIList(X) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0) -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0) -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 S tuples: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0) -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0) -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__ZEROS, A__U11_2, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1 Compound Symbols: c, c1, c2_2, c3, c4_1, c5, c6, c7_1, c8_1, c9, c10_1, c11, c12_2, c13, c14, c15_2, c16, c17, c18_3, c19, c20_1, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c28, c29, c30_1, c31 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0) -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0) -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 The (relative) TRS S consists of the following rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (9) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0') -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0') -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 The (relative) TRS S consists of the following rules: a__zeros -> cons(0', zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0') -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0' a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0') -> 0' mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0') -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0') -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 a__zeros -> cons(0', zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0') -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0' a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0') -> 0' mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c2 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c17:c18:c19 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c3 :: c2:c3 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c4:c5 c4 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c4:c5 c5 :: c4:c5 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c6:c7:c8:c9 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c6 :: c6:c7:c8:c9 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c7 :: c14:c15:c16 -> c6:c7:c8:c9 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c14:c15:c16 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c8 :: c6:c7:c8:c9 -> c6:c7:c8:c9 c9 :: c6:c7:c8:c9 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c10:c11:c12:c13 c10 :: c14:c15:c16 -> c10:c11:c12:c13 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c11 :: c10:c11:c12:c13 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c12 :: c4:c5 -> c6:c7:c8:c9 -> c10:c11:c12:c13 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c13 :: c10:c11:c12:c13 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c14 :: c14:c15:c16 c15 :: c4:c5 -> c6:c7:c8:c9 -> c14:c15:c16 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c16 :: c14:c15:c16 c17 :: c17:c18:c19 c18 :: c2:c3 -> c4:c5 -> c14:c15:c16 -> c17:c18:c19 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c19 :: c17:c18:c19 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c22 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c24 :: c6:c7:c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c25 :: c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c26 :: c10:c11:c12:c13 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c:c11_32 :: c:c1 hole_c2:c32_32 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and3_32 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c17:c18:c194_32 :: c17:c18:c19 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c315_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c4:c56_32 :: c4:c5 hole_c6:c7:c8:c97_32 :: c6:c7:c8:c9 hole_c14:c15:c168_32 :: c14:c15:c16 hole_c10:c11:c12:c139_32 :: c10:c11:c12:c13 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 gen_c6:c7:c8:c912_32 :: Nat -> c6:c7:c8:c9 ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__U11, A__LENGTH, mark, MARK, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST, a__isNat, a__and, a__isNatList, a__U11, a__length, a__isNatIList They will be analysed ascendingly in the following order: A__U11 = A__LENGTH mark < A__U11 A__U11 = MARK A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST a__and < A__LENGTH a__isNatList < A__LENGTH mark < MARK mark = a__isNat mark = a__and mark = a__isNatList mark = a__U11 mark = a__length mark = a__isNatIList MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST a__isNat < A__ISNATLIST a__isNat < A__ISNATILIST a__isNat = a__and a__isNat = a__isNatList a__isNat = a__U11 a__isNat = a__length a__isNat = a__isNatIList a__and = a__isNatList a__and = a__U11 a__and = a__length a__and = a__isNatIList a__isNatList = a__U11 a__isNatList = a__length a__isNatList = a__isNatIList a__U11 = a__length a__U11 = a__isNatIList a__length = a__isNatIList ---------------------------------------- (14) Obligation: Innermost TRS: Rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0') -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0') -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 a__zeros -> cons(0', zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0') -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0' a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0') -> 0' mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c2 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c17:c18:c19 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c3 :: c2:c3 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c4:c5 c4 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c4:c5 c5 :: c4:c5 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c6:c7:c8:c9 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c6 :: c6:c7:c8:c9 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c7 :: c14:c15:c16 -> c6:c7:c8:c9 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c14:c15:c16 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c8 :: c6:c7:c8:c9 -> c6:c7:c8:c9 c9 :: c6:c7:c8:c9 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c10:c11:c12:c13 c10 :: c14:c15:c16 -> c10:c11:c12:c13 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c11 :: c10:c11:c12:c13 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c12 :: c4:c5 -> c6:c7:c8:c9 -> c10:c11:c12:c13 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c13 :: c10:c11:c12:c13 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c14 :: c14:c15:c16 c15 :: c4:c5 -> c6:c7:c8:c9 -> c14:c15:c16 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c16 :: c14:c15:c16 c17 :: c17:c18:c19 c18 :: c2:c3 -> c4:c5 -> c14:c15:c16 -> c17:c18:c19 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c19 :: c17:c18:c19 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c22 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c24 :: c6:c7:c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c25 :: c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c26 :: c10:c11:c12:c13 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c:c11_32 :: c:c1 hole_c2:c32_32 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and3_32 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c17:c18:c194_32 :: c17:c18:c19 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c315_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c4:c56_32 :: c4:c5 hole_c6:c7:c8:c97_32 :: c6:c7:c8:c9 hole_c14:c15:c168_32 :: c14:c15:c16 hole_c10:c11:c12:c139_32 :: c10:c11:c12:c13 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 gen_c6:c7:c8:c912_32 :: Nat -> c6:c7:c8:c9 Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(0) <=> c20(c) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(+(x, 1)) <=> c21(c2(c17, c20(c)), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(x)) gen_c6:c7:c8:c912_32(0) <=> c6 gen_c6:c7:c8:c912_32(+(x, 1)) <=> c8(gen_c6:c7:c8:c912_32(x)) The following defined symbols remain to be analysed: a__U11, A__U11, A__LENGTH, mark, MARK, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST, a__isNat, a__and, a__isNatList, a__length, a__isNatIList They will be analysed ascendingly in the following order: A__U11 = A__LENGTH mark < A__U11 A__U11 = MARK A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST a__and < A__LENGTH a__isNatList < A__LENGTH mark < MARK mark = a__isNat mark = a__and mark = a__isNatList mark = a__U11 mark = a__length mark = a__isNatIList MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST a__isNat < A__ISNATLIST a__isNat < A__ISNATILIST a__isNat = a__and a__isNat = a__isNatList a__isNat = a__U11 a__isNat = a__length a__isNat = a__isNatIList a__and = a__isNatList a__and = a__U11 a__and = a__length a__and = a__isNatIList a__isNatList = a__U11 a__isNatList = a__length a__isNatList = a__isNatIList a__U11 = a__length a__U11 = a__isNatIList a__length = a__isNatIList ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32), rt in Omega(0) Induction Base: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(0)) ->_R^Omega(0) tt Induction Step: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(n367112_32, 1))) ->_R^Omega(0) a__length(mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32))) ->_IH a__length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(c367113_32)) ->_R^Omega(0) length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (16) Obligation: Innermost TRS: Rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0') -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0') -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 a__zeros -> cons(0', zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0') -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0' a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0') -> 0' mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c2 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c17:c18:c19 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c3 :: c2:c3 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c4:c5 c4 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c4:c5 c5 :: c4:c5 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c6:c7:c8:c9 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c6 :: c6:c7:c8:c9 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c7 :: c14:c15:c16 -> c6:c7:c8:c9 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c14:c15:c16 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c8 :: c6:c7:c8:c9 -> c6:c7:c8:c9 c9 :: c6:c7:c8:c9 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c10:c11:c12:c13 c10 :: c14:c15:c16 -> c10:c11:c12:c13 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c11 :: c10:c11:c12:c13 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c12 :: c4:c5 -> c6:c7:c8:c9 -> c10:c11:c12:c13 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c13 :: c10:c11:c12:c13 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c14 :: c14:c15:c16 c15 :: c4:c5 -> c6:c7:c8:c9 -> c14:c15:c16 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c16 :: c14:c15:c16 c17 :: c17:c18:c19 c18 :: c2:c3 -> c4:c5 -> c14:c15:c16 -> c17:c18:c19 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c19 :: c17:c18:c19 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c22 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c24 :: c6:c7:c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c25 :: c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c26 :: c10:c11:c12:c13 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c:c11_32 :: c:c1 hole_c2:c32_32 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and3_32 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c17:c18:c194_32 :: c17:c18:c19 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c315_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c4:c56_32 :: c4:c5 hole_c6:c7:c8:c97_32 :: c6:c7:c8:c9 hole_c14:c15:c168_32 :: c14:c15:c16 hole_c10:c11:c12:c139_32 :: c10:c11:c12:c13 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 gen_c6:c7:c8:c912_32 :: Nat -> c6:c7:c8:c9 Lemmas: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32), rt in Omega(0) Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(0) <=> c20(c) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(+(x, 1)) <=> c21(c2(c17, c20(c)), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(x)) gen_c6:c7:c8:c912_32(0) <=> c6 gen_c6:c7:c8:c912_32(+(x, 1)) <=> c8(gen_c6:c7:c8:c912_32(x)) The following defined symbols remain to be analysed: a__isNat, A__U11, A__LENGTH, MARK, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST, a__and, a__isNatList, a__U11, a__length, a__isNatIList They will be analysed ascendingly in the following order: A__U11 = A__LENGTH mark < A__U11 A__U11 = MARK A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST a__and < A__LENGTH a__isNatList < A__LENGTH mark < MARK mark = a__isNat mark = a__and mark = a__isNatList mark = a__U11 mark = a__length mark = a__isNatIList MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST a__isNat < A__ISNATLIST a__isNat < A__ISNATILIST a__isNat = a__and a__isNat = a__isNatList a__isNat = a__U11 a__isNat = a__length a__isNat = a__isNatIList a__and = a__isNatList a__and = a__U11 a__and = a__length a__and = a__isNatIList a__isNatList = a__U11 a__isNatList = a__length a__isNatList = a__isNatIList a__U11 = a__length a__U11 = a__isNatIList a__length = a__isNatIList ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32))) -> *13_32, rt in Omega(n527801_32) Induction Base: MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, 0))) Induction Step: MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, +(n527801_32, 1)))) ->_R^Omega(1) c22(A__LENGTH(mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32)))), MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32)))) ->_L^Omega(0) c22(A__LENGTH(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32))), MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32)))) ->_R^Omega(1) c22(c19, MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32)))) ->_IH c22(c19, *13_32) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (18) Complex Obligation (BEST) ---------------------------------------- (19) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0') -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0') -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 a__zeros -> cons(0', zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0') -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0' a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0') -> 0' mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c2 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c17:c18:c19 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c3 :: c2:c3 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c4:c5 c4 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c4:c5 c5 :: c4:c5 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c6:c7:c8:c9 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c6 :: c6:c7:c8:c9 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c7 :: c14:c15:c16 -> c6:c7:c8:c9 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c14:c15:c16 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c8 :: c6:c7:c8:c9 -> c6:c7:c8:c9 c9 :: c6:c7:c8:c9 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c10:c11:c12:c13 c10 :: c14:c15:c16 -> c10:c11:c12:c13 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c11 :: c10:c11:c12:c13 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c12 :: c4:c5 -> c6:c7:c8:c9 -> c10:c11:c12:c13 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c13 :: c10:c11:c12:c13 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c14 :: c14:c15:c16 c15 :: c4:c5 -> c6:c7:c8:c9 -> c14:c15:c16 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c16 :: c14:c15:c16 c17 :: c17:c18:c19 c18 :: c2:c3 -> c4:c5 -> c14:c15:c16 -> c17:c18:c19 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c19 :: c17:c18:c19 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c22 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c24 :: c6:c7:c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c25 :: c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c26 :: c10:c11:c12:c13 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c:c11_32 :: c:c1 hole_c2:c32_32 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and3_32 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c17:c18:c194_32 :: c17:c18:c19 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c315_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c4:c56_32 :: c4:c5 hole_c6:c7:c8:c97_32 :: c6:c7:c8:c9 hole_c14:c15:c168_32 :: c14:c15:c16 hole_c10:c11:c12:c139_32 :: c10:c11:c12:c13 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 gen_c6:c7:c8:c912_32 :: Nat -> c6:c7:c8:c9 Lemmas: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32), rt in Omega(0) Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(0) <=> c20(c) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(+(x, 1)) <=> c21(c2(c17, c20(c)), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(x)) gen_c6:c7:c8:c912_32(0) <=> c6 gen_c6:c7:c8:c912_32(+(x, 1)) <=> c8(gen_c6:c7:c8:c912_32(x)) The following defined symbols remain to be analysed: MARK, A__AND, A__ISNAT, A__ISNATLIST, A__ISNATILIST They will be analysed ascendingly in the following order: A__U11 = A__LENGTH A__U11 = MARK A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST ---------------------------------------- (20) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (21) BOUNDS(n^1, INF) ---------------------------------------- (22) Obligation: Innermost TRS: Rules: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0') -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0') -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 a__zeros -> cons(0', zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0') -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0' a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0') -> 0' mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Types: A__ZEROS :: c:c1 c :: c:c1 c1 :: c:c1 A__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c2:c3 tt :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c2 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c2:c3 A__LENGTH :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c17:c18:c19 mark :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and MARK :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c3 :: c2:c3 A__AND :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c4:c5 c4 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c4:c5 c5 :: c4:c5 A__ISNAT :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c6:c7:c8:c9 0' :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c6 :: c6:c7:c8:c9 length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c7 :: c14:c15:c16 -> c6:c7:c8:c9 A__ISNATLIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c14:c15:c16 s :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c8 :: c6:c7:c8:c9 -> c6:c7:c8:c9 c9 :: c6:c7:c8:c9 A__ISNATILIST :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> c10:c11:c12:c13 c10 :: c14:c15:c16 -> c10:c11:c12:c13 zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c11 :: c10:c11:c12:c13 cons :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c12 :: c4:c5 -> c6:c7:c8:c9 -> c10:c11:c12:c13 a__isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c13 :: c10:c11:c12:c13 nil :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c14 :: c14:c15:c16 c15 :: c4:c5 -> c6:c7:c8:c9 -> c14:c15:c16 isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c16 :: c14:c15:c16 c17 :: c17:c18:c19 c18 :: c2:c3 -> c4:c5 -> c14:c15:c16 -> c17:c18:c19 a__and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and isNat :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c19 :: c17:c18:c19 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c22 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 and :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c24 :: c6:c7:c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c25 :: c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c26 :: c10:c11:c12:c13 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__zeros :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__length :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c:c11_32 :: c:c1 hole_c2:c32_32 :: c2:c3 hole_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and3_32 :: tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and hole_c17:c18:c194_32 :: c17:c18:c19 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c315_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c4:c56_32 :: c4:c5 hole_c6:c7:c8:c97_32 :: c6:c7:c8:c9 hole_c14:c15:c168_32 :: c14:c15:c16 hole_c10:c11:c12:c139_32 :: c10:c11:c12:c13 gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32 :: Nat -> tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 gen_c6:c7:c8:c912_32 :: Nat -> c6:c7:c8:c9 Lemmas: mark(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32)) -> gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(n367112_32), rt in Omega(0) MARK(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(1, n527801_32))) -> *13_32, rt in Omega(n527801_32) Generator Equations: gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(0) <=> tt gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(+(x, 1)) <=> length(gen_tt:0':length:s:zeros:cons:isNatIList:nil:isNatList:isNat:U11:and10_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(0) <=> c20(c) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(+(x, 1)) <=> c21(c2(c17, c20(c)), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3111_32(x)) gen_c6:c7:c8:c912_32(0) <=> c6 gen_c6:c7:c8:c912_32(+(x, 1)) <=> c8(gen_c6:c7:c8:c912_32(x)) The following defined symbols remain to be analysed: A__AND, A__U11, A__LENGTH, A__ISNAT, A__ISNATLIST, A__ISNATILIST They will be analysed ascendingly in the following order: A__U11 = A__LENGTH A__U11 = MARK A__U11 = A__AND A__U11 = A__ISNAT A__U11 = A__ISNATLIST A__U11 = A__ISNATILIST A__LENGTH = MARK A__LENGTH = A__AND A__LENGTH = A__ISNAT A__LENGTH = A__ISNATLIST A__LENGTH = A__ISNATILIST MARK = A__AND MARK = A__ISNAT MARK = A__ISNATLIST MARK = A__ISNATILIST A__AND = A__ISNAT A__AND = A__ISNATLIST A__AND = A__ISNATILIST A__ISNAT = A__ISNATLIST A__ISNAT = A__ISNATILIST A__ISNATLIST = A__ISNATILIST ---------------------------------------- (23) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (24) 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: a__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (25) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (26) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and cons :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and 0 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and tt :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and s :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and mark :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and nil :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and Rewrite Strategy: INNERMOST ---------------------------------------- (27) 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: a__and_2 a__isNatList_1 mark_1 a__isNat_1 a__length_1 a__U11_2 a__zeros a__isNatIList_1 Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (28) 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: a__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and cons :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and 0 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and tt :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and s :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and mark :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and nil :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and Rewrite Strategy: INNERMOST ---------------------------------------- (29) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (30) 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: a__zeros -> cons(0, zeros) [1] a__U11(tt, zeros) -> s(a__length(a__zeros)) [2] a__U11(tt, U11(X1', X2')) -> s(a__length(a__U11(mark(X1'), X2'))) [2] a__U11(tt, length(X')) -> s(a__length(a__length(mark(X')))) [2] a__U11(tt, and(X1'', X2'')) -> s(a__length(a__and(mark(X1''), X2''))) [2] a__U11(tt, isNat(X'')) -> s(a__length(a__isNat(X''))) [2] a__U11(tt, isNatList(X3)) -> s(a__length(a__isNatList(X3))) [2] a__U11(tt, isNatIList(X4)) -> s(a__length(a__isNatIList(X4))) [2] a__U11(tt, cons(X11, X21)) -> s(a__length(cons(mark(X11), X21))) [2] a__U11(tt, 0) -> s(a__length(0)) [2] a__U11(tt, tt) -> s(a__length(tt)) [2] a__U11(tt, s(X5)) -> s(a__length(s(mark(X5)))) [2] a__U11(tt, nil) -> s(a__length(nil)) [2] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(0, V2)) -> a__and(tt, isNatIList(V2)) [2] a__isNatIList(cons(length(V1'), V2)) -> a__and(a__isNatList(V1'), isNatIList(V2)) [2] a__isNatIList(cons(s(V1''), V2)) -> a__and(a__isNat(V1''), isNatIList(V2)) [2] a__isNatIList(cons(V1, V2)) -> a__and(isNat(V1), isNatIList(V2)) [2] a__isNatList(nil) -> tt [1] a__isNatList(cons(0, V2)) -> a__and(tt, isNatList(V2)) [2] a__isNatList(cons(length(V11), V2)) -> a__and(a__isNatList(V11), isNatList(V2)) [2] a__isNatList(cons(s(V12), V2)) -> a__and(a__isNat(V12), isNatList(V2)) [2] a__isNatList(cons(V1, V2)) -> a__and(isNat(V1), isNatList(V2)) [2] a__length(nil) -> 0 [1] a__length(cons(N, nil)) -> a__U11(a__and(tt, isNat(N)), nil) [2] a__length(cons(N, cons(V13, V2'))) -> a__U11(a__and(a__and(a__isNat(V13), isNatList(V2')), isNat(N)), cons(V13, V2')) [2] a__length(cons(N, L)) -> a__U11(a__and(isNatList(L), isNat(N)), L) [2] mark(zeros) -> a__zeros [1] mark(U11(zeros, X2)) -> a__U11(a__zeros, X2) [2] mark(U11(U11(X12, X22), X2)) -> a__U11(a__U11(mark(X12), X22), X2) [2] mark(U11(length(X6), X2)) -> a__U11(a__length(mark(X6)), X2) [2] mark(U11(and(X13, X23), X2)) -> a__U11(a__and(mark(X13), X23), X2) [2] mark(U11(isNat(X7), X2)) -> a__U11(a__isNat(X7), X2) [2] mark(U11(isNatList(X8), X2)) -> a__U11(a__isNatList(X8), X2) [2] mark(U11(isNatIList(X9), X2)) -> a__U11(a__isNatIList(X9), X2) [2] mark(U11(cons(X14, X24), X2)) -> a__U11(cons(mark(X14), X24), X2) [2] mark(U11(0, X2)) -> a__U11(0, X2) [2] mark(U11(tt, X2)) -> a__U11(tt, X2) [2] mark(U11(s(X10), X2)) -> a__U11(s(mark(X10)), X2) [2] mark(U11(nil, X2)) -> a__U11(nil, X2) [2] mark(length(zeros)) -> a__length(a__zeros) [2] mark(length(U11(X15, X25))) -> a__length(a__U11(mark(X15), X25)) [2] mark(length(length(X16))) -> a__length(a__length(mark(X16))) [2] mark(length(and(X17, X26))) -> a__length(a__and(mark(X17), X26)) [2] mark(length(isNat(X18))) -> a__length(a__isNat(X18)) [2] mark(length(isNatList(X19))) -> a__length(a__isNatList(X19)) [2] mark(length(isNatIList(X20))) -> a__length(a__isNatIList(X20)) [2] mark(length(cons(X110, X27))) -> a__length(cons(mark(X110), X27)) [2] mark(length(0)) -> a__length(0) [2] mark(length(tt)) -> a__length(tt) [2] mark(length(s(X28))) -> a__length(s(mark(X28))) [2] mark(length(nil)) -> a__length(nil) [2] mark(and(zeros, X2)) -> a__and(a__zeros, X2) [2] mark(and(U11(X111, X29), X2)) -> a__and(a__U11(mark(X111), X29), X2) [2] mark(and(length(X30), X2)) -> a__and(a__length(mark(X30)), X2) [2] mark(and(and(X112, X210), X2)) -> a__and(a__and(mark(X112), X210), X2) [2] mark(and(isNat(X31), X2)) -> a__and(a__isNat(X31), X2) [2] mark(and(isNatList(X32), X2)) -> a__and(a__isNatList(X32), X2) [2] mark(and(isNatIList(X33), X2)) -> a__and(a__isNatIList(X33), X2) [2] mark(and(cons(X113, X211), X2)) -> a__and(cons(mark(X113), X211), X2) [2] mark(and(0, X2)) -> a__and(0, X2) [2] mark(and(tt, X2)) -> a__and(tt, X2) [2] mark(and(s(X34), X2)) -> a__and(s(mark(X34)), X2) [2] mark(and(nil, X2)) -> a__and(nil, X2) [2] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and cons :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and 0 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and tt :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and s :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and mark :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and nil :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and 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: 0 => 0 zeros => 3 tt => 2 nil => 1 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 2 }-> 1 + a__length(a__zeros) :|: z = 2, z' = 3 a__U11(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X'))) :|: z = 2, X' >= 0, z' = 1 + X' a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X3)) :|: z = 2, X3 >= 0, z' = 1 + X3 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X4)) :|: z = 2, z' = 1 + X4, X4 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNat(X'')) :|: z = 2, z' = 1 + X'', X'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1''), X2'')) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U11(mark(X1'), X2')) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X11) + X21) :|: z = 2, z' = 1 + X11 + X21, X11 >= 0, X21 >= 0 a__U11(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(V) :|: z = V, V >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNatList(V1'), 1 + V2) :|: V2 >= 0, z = 1 + (1 + V1') + V2, V1' >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNat(V1''), 1 + V2) :|: V1'' >= 0, z = 1 + (1 + V1'') + V2, V2 >= 0 a__isNatIList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatIList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V11), 1 + V2) :|: z = 1 + (1 + V11) + V2, V11 >= 0, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V12), 1 + V2) :|: V12 >= 0, V2 >= 0, z = 1 + (1 + V12) + V2 a__isNatList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V13), 1 + V2'), 1 + N), 1 + V13 + V2') :|: V13 >= 0, z = 1 + N + (1 + V13 + V2'), V2' >= 0, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(2, 1 + N), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(1 + L, 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 mark(z) -{ 2 }-> a__length(a__zeros) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(a__length(mark(X16))) :|: X16 >= 0, z = 1 + (1 + X16) mark(z) -{ 2 }-> a__length(a__isNatList(X19)) :|: X19 >= 0, z = 1 + (1 + X19) mark(z) -{ 2 }-> a__length(a__isNatIList(X20)) :|: z = 1 + (1 + X20), X20 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X18)) :|: X18 >= 0, z = 1 + (1 + X18) mark(z) -{ 2 }-> a__length(a__and(mark(X17), X26)) :|: z = 1 + (1 + X17 + X26), X26 >= 0, X17 >= 0 mark(z) -{ 2 }-> a__length(a__U11(mark(X15), X25)) :|: z = 1 + (1 + X15 + X25), X15 >= 0, X25 >= 0 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(X28)) :|: X28 >= 0, z = 1 + (1 + X28) mark(z) -{ 2 }-> a__length(1 + mark(X110) + X27) :|: X110 >= 0, X27 >= 0, z = 1 + (1 + X110 + X27) mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 2 }-> a__and(a__zeros, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__and(a__length(mark(X30)), X2) :|: z = 1 + (1 + X30) + X2, X30 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatList(X32), X2) :|: z = 1 + (1 + X32) + X2, X32 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatIList(X33), X2) :|: X33 >= 0, z = 1 + (1 + X33) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNat(X31), X2) :|: z = 1 + (1 + X31) + X2, X31 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X112), X210), X2) :|: X112 >= 0, z = 1 + (1 + X112 + X210) + X2, X2 >= 0, X210 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X111), X29), X2) :|: X29 >= 0, X2 >= 0, z = 1 + (1 + X111 + X29) + X2, X111 >= 0 mark(z) -{ 2 }-> a__and(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X34), X2) :|: z = 1 + (1 + X34) + X2, X2 >= 0, X34 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X113) + X211, X2) :|: z = 1 + (1 + X113 + X211) + X2, X113 >= 0, X211 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__zeros, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__U11(a__length(mark(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatList(X8), X2) :|: z = 1 + (1 + X8) + X2, X8 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatIList(X9), X2) :|: X9 >= 0, z = 1 + (1 + X9) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNat(X7), X2) :|: z = 1 + (1 + X7) + X2, X7 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__and(mark(X13), X23), X2) :|: z = 1 + (1 + X13 + X23) + X2, X2 >= 0, X13 >= 0, X23 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X12), X22), X2) :|: z = 1 + (1 + X12 + X22) + X2, X12 >= 0, X22 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X10), X2) :|: X10 >= 0, z = 1 + (1 + X10) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X14) + X24, X2) :|: z = 1 + (1 + X14 + X24) + X2, X2 >= 0, X14 >= 0, X24 >= 0 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (33) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X'))) :|: z = 2, X' >= 0, z' = 1 + X' a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X3)) :|: z = 2, X3 >= 0, z' = 1 + X3 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X4)) :|: z = 2, z' = 1 + X4, X4 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNat(X'')) :|: z = 2, z' = 1 + X'', X'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1''), X2'')) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U11(mark(X1'), X2')) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__U11(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X11) + X21) :|: z = 2, z' = 1 + X11 + X21, X11 >= 0, X21 >= 0 a__U11(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(V) :|: z = V, V >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNatList(V1'), 1 + V2) :|: V2 >= 0, z = 1 + (1 + V1') + V2, V1' >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNat(V1''), 1 + V2) :|: V1'' >= 0, z = 1 + (1 + V1'') + V2, V2 >= 0 a__isNatIList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatIList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V11), 1 + V2) :|: z = 1 + (1 + V11) + V2, V11 >= 0, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V12), 1 + V2) :|: V12 >= 0, V2 >= 0, z = 1 + (1 + V12) + V2 a__isNatList(z) -{ 2 }-> a__and(2, 1 + V2) :|: V2 >= 0, z = 1 + 0 + V2 a__isNatList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V13), 1 + V2'), 1 + N), 1 + V13 + V2') :|: V13 >= 0, z = 1 + N + (1 + V13 + V2'), V2' >= 0, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(2, 1 + N), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(1 + L, 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 2 }-> a__length(a__length(mark(X16))) :|: X16 >= 0, z = 1 + (1 + X16) mark(z) -{ 2 }-> a__length(a__isNatList(X19)) :|: X19 >= 0, z = 1 + (1 + X19) mark(z) -{ 2 }-> a__length(a__isNatIList(X20)) :|: z = 1 + (1 + X20), X20 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X18)) :|: X18 >= 0, z = 1 + (1 + X18) mark(z) -{ 2 }-> a__length(a__and(mark(X17), X26)) :|: z = 1 + (1 + X17 + X26), X26 >= 0, X17 >= 0 mark(z) -{ 2 }-> a__length(a__U11(mark(X15), X25)) :|: z = 1 + (1 + X15 + X25), X15 >= 0, X25 >= 0 mark(z) -{ 3 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(X28)) :|: X28 >= 0, z = 1 + (1 + X28) mark(z) -{ 2 }-> a__length(1 + mark(X110) + X27) :|: X110 >= 0, X27 >= 0, z = 1 + (1 + X110 + X27) mark(z) -{ 3 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 2 }-> a__and(a__length(mark(X30)), X2) :|: z = 1 + (1 + X30) + X2, X30 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatList(X32), X2) :|: z = 1 + (1 + X32) + X2, X32 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatIList(X33), X2) :|: X33 >= 0, z = 1 + (1 + X33) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNat(X31), X2) :|: z = 1 + (1 + X31) + X2, X31 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X112), X210), X2) :|: X112 >= 0, z = 1 + (1 + X112 + X210) + X2, X2 >= 0, X210 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X111), X29), X2) :|: X29 >= 0, X2 >= 0, z = 1 + (1 + X111 + X29) + X2, X111 >= 0 mark(z) -{ 3 }-> a__and(3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__and(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X34), X2) :|: z = 1 + (1 + X34) + X2, X2 >= 0, X34 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X113) + X211, X2) :|: z = 1 + (1 + X113 + X211) + X2, X113 >= 0, X211 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__and(1 + 0 + 3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__U11(a__length(mark(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatList(X8), X2) :|: z = 1 + (1 + X8) + X2, X8 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatIList(X9), X2) :|: X9 >= 0, z = 1 + (1 + X9) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNat(X7), X2) :|: z = 1 + (1 + X7) + X2, X7 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__and(mark(X13), X23), X2) :|: z = 1 + (1 + X13 + X23) + X2, X2 >= 0, X13 >= 0, X23 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X12), X22), X2) :|: z = 1 + (1 + X12 + X22) + X2, X12 >= 0, X22 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__U11(3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__U11(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X10), X2) :|: X10 >= 0, z = 1 + (1 + X10) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X14) + X24, X2) :|: z = 1 + (1 + X14 + X24) + X2, X2 >= 0, X14 >= 0, X24 >= 0 mark(z) -{ 3 }-> a__U11(1 + 0 + 3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> 3 :|: z = 3 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (35) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 2 }-> 1 + a__length(a__length(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__isNat(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1''), X2'')) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(a__U11(mark(X1'), X2')) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__U11(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 2 }-> 1 + a__length(1 + mark(X11) + X21) :|: z = 2, z' = 1 + X11 + X21, X11 >= 0, X21 >= 0 a__U11(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__and(z, z') -{ 1 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__isNat(z) -{ 1 }-> a__isNatList(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatIList(z) -{ 1 }-> a__isNatList(z) :|: z >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNatList(V1'), 1 + V2) :|: V2 >= 0, z = 1 + (1 + V1') + V2, V1' >= 0 a__isNatIList(z) -{ 2 }-> a__and(a__isNat(V1''), 1 + V2) :|: V1'' >= 0, z = 1 + (1 + V1'') + V2, V2 >= 0 a__isNatIList(z) -{ 2 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNatList(V11), 1 + V2) :|: z = 1 + (1 + V11) + V2, V11 >= 0, V2 >= 0 a__isNatList(z) -{ 2 }-> a__and(a__isNat(V12), 1 + V2) :|: V12 >= 0, V2 >= 0, z = 1 + (1 + V12) + V2 a__isNatList(z) -{ 2 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 2 }-> a__and(1 + V1, 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + z :|: z >= 0 a__length(z) -{ 2 }-> a__U11(a__and(a__and(a__isNat(V13), 1 + V2'), 1 + N), 1 + V13 + V2') :|: V13 >= 0, z = 1 + N + (1 + V13 + V2'), V2' >= 0, N >= 0 a__length(z) -{ 2 }-> a__U11(a__and(2, 1 + (z - 2)), 1) :|: z - 2 >= 0 a__length(z) -{ 2 }-> a__U11(a__and(1 + L, 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + z :|: z >= 0 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 2 }-> a__length(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__and(mark(X17), X26)) :|: z = 1 + (1 + X17 + X26), X26 >= 0, X17 >= 0 mark(z) -{ 2 }-> a__length(a__U11(mark(X15), X25)) :|: z = 1 + (1 + X15 + X25), X15 >= 0, X25 >= 0 mark(z) -{ 3 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X110) + X27) :|: X110 >= 0, X27 >= 0, z = 1 + (1 + X110 + X27) mark(z) -{ 3 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 1 }-> a__isNatList(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__isNatIList(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__isNat(z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__and(a__length(mark(X30)), X2) :|: z = 1 + (1 + X30) + X2, X30 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatList(X32), X2) :|: z = 1 + (1 + X32) + X2, X32 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNatIList(X33), X2) :|: X33 >= 0, z = 1 + (1 + X33) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__isNat(X31), X2) :|: z = 1 + (1 + X31) + X2, X31 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X112), X210), X2) :|: X112 >= 0, z = 1 + (1 + X112 + X210) + X2, X2 >= 0, X210 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X111), X29), X2) :|: X29 >= 0, X2 >= 0, z = 1 + (1 + X111 + X29) + X2, X111 >= 0 mark(z) -{ 3 }-> a__and(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__and(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__and(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__and(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X34), X2) :|: z = 1 + (1 + X34) + X2, X2 >= 0, X34 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X113) + X211, X2) :|: z = 1 + (1 + X113 + X211) + X2, X113 >= 0, X211 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__and(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__U11(a__length(mark(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatList(X8), X2) :|: z = 1 + (1 + X8) + X2, X8 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNatIList(X9), X2) :|: X9 >= 0, z = 1 + (1 + X9) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__isNat(X7), X2) :|: z = 1 + (1 + X7) + X2, X7 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__and(mark(X13), X23), X2) :|: z = 1 + (1 + X13 + X23) + X2, X2 >= 0, X13 >= 0, X23 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X12), X22), X2) :|: z = 1 + (1 + X12 + X22) + X2, X12 >= 0, X22 >= 0, X2 >= 0 mark(z) -{ 3 }-> a__U11(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__U11(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__U11(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U11(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X10), X2) :|: X10 >= 0, z = 1 + (1 + X10) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X14) + X24, X2) :|: z = 1 + (1 + X14 + X24) + X2, X2 >= 0, X14 >= 0, X24 >= 0 mark(z) -{ 3 }-> a__U11(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> 3 :|: z = 3 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (37) 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: none And the following fresh constants: none ---------------------------------------- (38) 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: a__zeros -> cons(0, zeros) [1] a__U11(tt, L) -> s(a__length(mark(L))) [1] a__and(tt, X) -> mark(X) [1] a__isNat(0) -> tt [1] a__isNat(length(V1)) -> a__isNatList(V1) [1] a__isNat(s(V1)) -> a__isNat(V1) [1] a__isNatIList(V) -> a__isNatList(V) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatIList(V2)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2)) [1] a__length(nil) -> 0 [1] a__length(cons(N, L)) -> a__U11(a__and(a__isNatList(L), isNat(N)), L) [1] mark(zeros) -> a__zeros [1] mark(U11(X1, X2)) -> a__U11(mark(X1), X2) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(0) -> 0 [1] mark(tt) -> tt [1] mark(s(X)) -> s(mark(X)) [1] mark(nil) -> nil [1] a__zeros -> zeros [1] a__U11(X1, X2) -> U11(X1, X2) [1] a__length(X) -> length(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNat(X) -> isNat(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNatIList(X) -> isNatIList(X) [1] The TRS has the following type information: a__zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and cons :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and 0 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and zeros :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and tt :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and s :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and mark :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and length :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and a__isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatIList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and nil :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNatList :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and isNat :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and U11 :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and and :: 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and -> 0:zeros:cons:tt:s:length:isNatIList:nil:isNatList:isNat:U11:and Rewrite Strategy: INNERMOST ---------------------------------------- (39) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 zeros => 3 tt => 2 nil => 1 ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z') -{ 1 }-> 1 + a__length(mark(L)) :|: z = 2, L >= 0, z' = L a__U11(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(V1) :|: z = 1 + V1, V1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(V) :|: z = V, V >= 0 a__isNatIList(z) -{ 1 }-> a__and(a__isNat(V1), 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 1 }-> a__and(a__isNat(V1), 1 + V2) :|: V1 >= 0, V2 >= 0, z = 1 + V1 + V2 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 1 }-> a__U11(a__and(a__isNatList(L), 1 + N), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 0 :|: z = 1 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 mark(z) -{ 1 }-> a__length(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__U11(mark(X1), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (41) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0) -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0) -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 S tuples: A__ZEROS -> c A__ZEROS -> c1 A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__U11(z0, z1) -> c3 A__AND(tt, z0) -> c4(MARK(z0)) A__AND(z0, z1) -> c5 A__ISNAT(0) -> c6 A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(z0) -> c9 A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c11 A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(z0) -> c13 A__ISNATLIST(nil) -> c14 A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(z0) -> c16 A__LENGTH(nil) -> c17 A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c19 MARK(zeros) -> c20(A__ZEROS) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(0) -> c28 MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(nil) -> c31 K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__ZEROS, A__U11_2, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1 Compound Symbols: c, c1, c2_2, c3, c4_1, c5, c6, c7_1, c8_1, c9, c10_1, c11, c12_2, c13, c14, c15_2, c16, c17, c18_3, c19, c20_1, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c28, c29, c30_1, c31 ---------------------------------------- (43) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 16 trailing nodes: A__ISNATILIST(z0) -> c13 A__LENGTH(z0) -> c19 A__U11(z0, z1) -> c3 MARK(tt) -> c29 A__ISNAT(z0) -> c9 A__AND(z0, z1) -> c5 A__ZEROS -> c1 MARK(nil) -> c31 A__ISNATILIST(zeros) -> c11 A__ISNATLIST(z0) -> c16 A__ISNATLIST(nil) -> c14 A__LENGTH(nil) -> c17 A__ISNAT(0) -> c6 MARK(zeros) -> c20(A__ZEROS) MARK(0) -> c28 A__ZEROS -> c ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) S tuples: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__U11_2, A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1 Compound Symbols: c2_2, c4_1, c7_1, c8_1, c10_1, c12_2, c15_2, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1 ---------------------------------------- (45) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (46) 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: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) The (relative) TRS S consists of the following rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (47) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (48) 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: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (49) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (50) 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: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__AND(tt, z0) -> c4(MARK(z0)) [1] A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c24(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c27(MARK(z0)) [1] MARK(s(z0)) -> c30(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] Rewrite Strategy: INNERMOST ---------------------------------------- (51) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (52) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__AND(tt, z0) -> c4(MARK(z0)) [1] A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c24(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c27(MARK(z0)) [1] MARK(s(z0)) -> c30(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c2 tt :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c2 :: c18 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c2 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c18 mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil MARK :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c21:c22:c23:c24:c25:c26:c27:c30 A__AND :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c4 c4 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c4 A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c7:c8 length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c7 :: c15 -> c7:c8 A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c15 s :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c8 :: c7:c8 -> c7:c8 A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> c10:c12 c10 :: c15 -> c10:c12 cons :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c12 :: c4 -> c7:c8 -> c10:c12 a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c15 :: c4 -> c7:c8 -> c15 isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c18 :: c2 -> c4 -> c15 -> c18 a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c21 :: c2 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c22 :: c18 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil c23 :: c4 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c24 :: c7:c8 -> c21:c22:c23:c24:c25:c26:c27:c30 c25 :: c15 -> c21:c22:c23:c24:c25:c26:c27:c30 c26 :: c10:c12 -> c21:c22:c23:c24:c25:c26:c27:c30 c27 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c30 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil 0 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil nil :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil Rewrite Strategy: INNERMOST ---------------------------------------- (53) 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: A__U11_2 A__AND_2 A__ISNAT_1 A__ISNATILIST_1 A__ISNATLIST_1 A__LENGTH_1 MARK_1 (c) The following functions are completely defined: a__zeros a__U11_2 a__and_2 a__isNat_1 a__isNatIList_1 a__isNatList_1 a__length_1 mark_1 Due to the following rules being added: a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__zeros, null_a__U11, null_a__and, null_a__isNat, null_a__isNatIList, null_a__isNatList, null_a__length, null_mark, const, const1, const2, const3, const4, const5, const6 ---------------------------------------- (54) 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: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__AND(tt, z0) -> c4(MARK(z0)) [1] A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c24(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c27(MARK(z0)) [1] MARK(s(z0)) -> c30(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c2 tt :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c2 :: c18 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c2 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c18 mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark MARK :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c21:c22:c23:c24:c25:c26:c27:c30 A__AND :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c4 c4 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c4 A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c7:c8 length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c7 :: c15 -> c7:c8 A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c15 s :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c8 :: c7:c8 -> c7:c8 A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c10:c12 c10 :: c15 -> c10:c12 cons :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c12 :: c4 -> c7:c8 -> c10:c12 a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c15 :: c4 -> c7:c8 -> c15 isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c18 :: c2 -> c4 -> c15 -> c18 a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c21 :: c2 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c22 :: c18 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c23 :: c4 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c24 :: c7:c8 -> c21:c22:c23:c24:c25:c26:c27:c30 c25 :: c15 -> c21:c22:c23:c24:c25:c26:c27:c30 c26 :: c10:c12 -> c21:c22:c23:c24:c25:c26:c27:c30 c27 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c30 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark 0 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark nil :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark const :: c2 const1 :: c18 const2 :: c21:c22:c23:c24:c25:c26:c27:c30 const3 :: c4 const4 :: c7:c8 const5 :: c15 const6 :: c10:c12 Rewrite Strategy: INNERMOST ---------------------------------------- (55) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (56) 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: A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) [1] A__U11(tt, U11(z0', z1')) -> c2(A__LENGTH(a__U11(mark(z0'), z1')), MARK(U11(z0', z1'))) [1] A__U11(tt, length(z0'')) -> c2(A__LENGTH(a__length(mark(z0''))), MARK(length(z0''))) [1] A__U11(tt, and(z01, z1'')) -> c2(A__LENGTH(a__and(mark(z01), z1'')), MARK(and(z01, z1''))) [1] A__U11(tt, isNat(z02)) -> c2(A__LENGTH(a__isNat(z02)), MARK(isNat(z02))) [1] A__U11(tt, isNatList(z03)) -> c2(A__LENGTH(a__isNatList(z03)), MARK(isNatList(z03))) [1] A__U11(tt, isNatIList(z04)) -> c2(A__LENGTH(a__isNatIList(z04)), MARK(isNatIList(z04))) [1] A__U11(tt, cons(z05, z11)) -> c2(A__LENGTH(cons(mark(z05), z11)), MARK(cons(z05, z11))) [1] A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) [1] A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) [1] A__U11(tt, s(z06)) -> c2(A__LENGTH(s(mark(z06))), MARK(s(z06))) [1] A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) [1] A__U11(tt, z0) -> c2(A__LENGTH(null_mark), MARK(z0)) [1] A__AND(tt, z0) -> c4(MARK(z0)) [1] A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(0, z1)) -> c12(A__AND(tt, isNatIList(z1)), A__ISNAT(0)) [1] A__ISNATILIST(cons(length(z07), z1)) -> c12(A__AND(a__isNatList(z07), isNatIList(z1)), A__ISNAT(length(z07))) [1] A__ISNATILIST(cons(s(z08), z1)) -> c12(A__AND(a__isNat(z08), isNatIList(z1)), A__ISNAT(s(z08))) [1] A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(null_a__isNat, isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(0, z1)) -> c15(A__AND(tt, isNatList(z1)), A__ISNAT(0)) [1] A__ISNATLIST(cons(length(z09), z1)) -> c15(A__AND(a__isNatList(z09), isNatList(z1)), A__ISNAT(length(z09))) [1] A__ISNATLIST(cons(s(z010), z1)) -> c15(A__AND(a__isNat(z010), isNatList(z1)), A__ISNAT(s(z010))) [1] A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(null_a__isNat, isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, nil)) -> c18(A__U11(a__and(tt, isNat(z0)), nil), A__AND(tt, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, nil)) -> c18(A__U11(a__and(tt, isNat(z0)), nil), A__AND(isNatList(nil), isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, nil)) -> c18(A__U11(a__and(tt, isNat(z0)), nil), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, cons(z011, z12))) -> c18(A__U11(a__and(a__and(a__isNat(z011), isNatList(z12)), isNat(z0)), cons(z011, z12)), A__AND(a__and(a__isNat(z011), isNatList(z12)), isNat(z0)), A__ISNATLIST(cons(z011, z12))) [1] A__LENGTH(cons(z0, cons(z011, z12))) -> c18(A__U11(a__and(a__and(a__isNat(z011), isNatList(z12)), isNat(z0)), cons(z011, z12)), A__AND(isNatList(cons(z011, z12)), isNat(z0)), A__ISNATLIST(cons(z011, z12))) [1] A__LENGTH(cons(z0, cons(z011, z12))) -> c18(A__U11(a__and(a__and(a__isNat(z011), isNatList(z12)), isNat(z0)), cons(z011, z12)), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(cons(z011, z12))) [1] A__LENGTH(cons(z0, nil)) -> c18(A__U11(a__and(isNatList(nil), isNat(z0)), nil), A__AND(tt, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, cons(z012, z13))) -> c18(A__U11(a__and(isNatList(cons(z012, z13)), isNat(z0)), cons(z012, z13)), A__AND(a__and(a__isNat(z012), isNatList(z13)), isNat(z0)), A__ISNATLIST(cons(z012, z13))) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(isNatList(z1), isNat(z0)), z1), A__AND(isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(isNatList(z1), isNat(z0)), z1), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(z1)) [1] A__LENGTH(cons(z0, nil)) -> c18(A__U11(a__and(null_a__isNatList, isNat(z0)), nil), A__AND(tt, isNat(z0)), A__ISNATLIST(nil)) [1] A__LENGTH(cons(z0, cons(z013, z14))) -> c18(A__U11(a__and(null_a__isNatList, isNat(z0)), cons(z013, z14)), A__AND(a__and(a__isNat(z013), isNatList(z14)), isNat(z0)), A__ISNATLIST(cons(z013, z14))) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(null_a__isNatList, isNat(z0)), z1), A__AND(isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(null_a__isNatList, isNat(z0)), z1), A__AND(null_a__isNatList, isNat(z0)), A__ISNATLIST(z1)) [1] MARK(U11(zeros, z1)) -> c21(A__U11(a__zeros, z1), MARK(zeros)) [1] MARK(U11(U11(z014, z15), z1)) -> c21(A__U11(a__U11(mark(z014), z15), z1), MARK(U11(z014, z15))) [1] MARK(U11(length(z015), z1)) -> c21(A__U11(a__length(mark(z015)), z1), MARK(length(z015))) [1] MARK(U11(and(z016, z16), z1)) -> c21(A__U11(a__and(mark(z016), z16), z1), MARK(and(z016, z16))) [1] MARK(U11(isNat(z017), z1)) -> c21(A__U11(a__isNat(z017), z1), MARK(isNat(z017))) [1] MARK(U11(isNatList(z018), z1)) -> c21(A__U11(a__isNatList(z018), z1), MARK(isNatList(z018))) [1] MARK(U11(isNatIList(z019), z1)) -> c21(A__U11(a__isNatIList(z019), z1), MARK(isNatIList(z019))) [1] MARK(U11(cons(z020, z17), z1)) -> c21(A__U11(cons(mark(z020), z17), z1), MARK(cons(z020, z17))) [1] MARK(U11(0, z1)) -> c21(A__U11(0, z1), MARK(0)) [1] MARK(U11(tt, z1)) -> c21(A__U11(tt, z1), MARK(tt)) [1] MARK(U11(s(z021), z1)) -> c21(A__U11(s(mark(z021)), z1), MARK(s(z021))) [1] MARK(U11(nil, z1)) -> c21(A__U11(nil, z1), MARK(nil)) [1] MARK(U11(z0, z1)) -> c21(A__U11(null_mark, z1), MARK(z0)) [1] MARK(length(zeros)) -> c22(A__LENGTH(a__zeros), MARK(zeros)) [1] MARK(length(U11(z022, z18))) -> c22(A__LENGTH(a__U11(mark(z022), z18)), MARK(U11(z022, z18))) [1] MARK(length(length(z023))) -> c22(A__LENGTH(a__length(mark(z023))), MARK(length(z023))) [1] MARK(length(and(z024, z19))) -> c22(A__LENGTH(a__and(mark(z024), z19)), MARK(and(z024, z19))) [1] MARK(length(isNat(z025))) -> c22(A__LENGTH(a__isNat(z025)), MARK(isNat(z025))) [1] MARK(length(isNatList(z026))) -> c22(A__LENGTH(a__isNatList(z026)), MARK(isNatList(z026))) [1] MARK(length(isNatIList(z027))) -> c22(A__LENGTH(a__isNatIList(z027)), MARK(isNatIList(z027))) [1] MARK(length(cons(z028, z110))) -> c22(A__LENGTH(cons(mark(z028), z110)), MARK(cons(z028, z110))) [1] MARK(length(0)) -> c22(A__LENGTH(0), MARK(0)) [1] MARK(length(tt)) -> c22(A__LENGTH(tt), MARK(tt)) [1] MARK(length(s(z029))) -> c22(A__LENGTH(s(mark(z029))), MARK(s(z029))) [1] MARK(length(nil)) -> c22(A__LENGTH(nil), MARK(nil)) [1] MARK(length(z0)) -> c22(A__LENGTH(null_mark), MARK(z0)) [1] MARK(and(zeros, z1)) -> c23(A__AND(a__zeros, z1), MARK(zeros)) [1] MARK(and(U11(z030, z111), z1)) -> c23(A__AND(a__U11(mark(z030), z111), z1), MARK(U11(z030, z111))) [1] MARK(and(length(z031), z1)) -> c23(A__AND(a__length(mark(z031)), z1), MARK(length(z031))) [1] MARK(and(and(z032, z112), z1)) -> c23(A__AND(a__and(mark(z032), z112), z1), MARK(and(z032, z112))) [1] MARK(and(isNat(z033), z1)) -> c23(A__AND(a__isNat(z033), z1), MARK(isNat(z033))) [1] MARK(and(isNatList(z034), z1)) -> c23(A__AND(a__isNatList(z034), z1), MARK(isNatList(z034))) [1] MARK(and(isNatIList(z035), z1)) -> c23(A__AND(a__isNatIList(z035), z1), MARK(isNatIList(z035))) [1] MARK(and(cons(z036, z113), z1)) -> c23(A__AND(cons(mark(z036), z113), z1), MARK(cons(z036, z113))) [1] MARK(and(0, z1)) -> c23(A__AND(0, z1), MARK(0)) [1] MARK(and(tt, z1)) -> c23(A__AND(tt, z1), MARK(tt)) [1] MARK(and(s(z037), z1)) -> c23(A__AND(s(mark(z037)), z1), MARK(s(z037))) [1] MARK(and(nil, z1)) -> c23(A__AND(nil, z1), MARK(nil)) [1] MARK(and(z0, z1)) -> c23(A__AND(null_mark, z1), MARK(z0)) [1] MARK(isNat(z0)) -> c24(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c27(MARK(z0)) [1] MARK(s(z0)) -> c30(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, zeros) -> s(a__length(a__zeros)) [0] a__U11(tt, U11(z038, z114)) -> s(a__length(a__U11(mark(z038), z114))) [0] a__U11(tt, length(z039)) -> s(a__length(a__length(mark(z039)))) [0] a__U11(tt, and(z040, z115)) -> s(a__length(a__and(mark(z040), z115))) [0] a__U11(tt, isNat(z041)) -> s(a__length(a__isNat(z041))) [0] a__U11(tt, isNatList(z042)) -> s(a__length(a__isNatList(z042))) [0] a__U11(tt, isNatIList(z043)) -> s(a__length(a__isNatIList(z043))) [0] a__U11(tt, cons(z044, z116)) -> s(a__length(cons(mark(z044), z116))) [0] a__U11(tt, 0) -> s(a__length(0)) [0] a__U11(tt, tt) -> s(a__length(tt)) [0] a__U11(tt, s(z045)) -> s(a__length(s(mark(z045)))) [0] a__U11(tt, nil) -> s(a__length(nil)) [0] a__U11(tt, z0) -> s(a__length(null_mark)) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(0, z1)) -> a__and(tt, isNatIList(z1)) [0] a__isNatIList(cons(length(z046), z1)) -> a__and(a__isNatList(z046), isNatIList(z1)) [0] a__isNatIList(cons(s(z047), z1)) -> a__and(a__isNat(z047), isNatIList(z1)) [0] a__isNatIList(cons(z0, z1)) -> a__and(isNat(z0), isNatIList(z1)) [0] a__isNatIList(cons(z0, z1)) -> a__and(null_a__isNat, isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(0, z1)) -> a__and(tt, isNatList(z1)) [0] a__isNatList(cons(length(z048), z1)) -> a__and(a__isNatList(z048), isNatList(z1)) [0] a__isNatList(cons(s(z049), z1)) -> a__and(a__isNat(z049), isNatList(z1)) [0] a__isNatList(cons(z0, z1)) -> a__and(isNat(z0), isNatList(z1)) [0] a__isNatList(cons(z0, z1)) -> a__and(null_a__isNat, isNatList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, nil)) -> a__U11(a__and(tt, isNat(z0)), nil) [0] a__length(cons(z0, cons(z050, z117))) -> a__U11(a__and(a__and(a__isNat(z050), isNatList(z117)), isNat(z0)), cons(z050, z117)) [0] a__length(cons(z0, z1)) -> a__U11(a__and(isNatList(z1), isNat(z0)), z1) [0] a__length(cons(z0, z1)) -> a__U11(a__and(null_a__isNatList, isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] mark(zeros) -> a__zeros [0] mark(U11(zeros, z1)) -> a__U11(a__zeros, z1) [0] mark(U11(U11(z051, z118), z1)) -> a__U11(a__U11(mark(z051), z118), z1) [0] mark(U11(length(z052), z1)) -> a__U11(a__length(mark(z052)), z1) [0] mark(U11(and(z053, z119), z1)) -> a__U11(a__and(mark(z053), z119), z1) [0] mark(U11(isNat(z054), z1)) -> a__U11(a__isNat(z054), z1) [0] mark(U11(isNatList(z055), z1)) -> a__U11(a__isNatList(z055), z1) [0] mark(U11(isNatIList(z056), z1)) -> a__U11(a__isNatIList(z056), z1) [0] mark(U11(cons(z057, z120), z1)) -> a__U11(cons(mark(z057), z120), z1) [0] mark(U11(0, z1)) -> a__U11(0, z1) [0] mark(U11(tt, z1)) -> a__U11(tt, z1) [0] mark(U11(s(z058), z1)) -> a__U11(s(mark(z058)), z1) [0] mark(U11(nil, z1)) -> a__U11(nil, z1) [0] mark(U11(z0, z1)) -> a__U11(null_mark, z1) [0] mark(length(zeros)) -> a__length(a__zeros) [0] mark(length(U11(z059, z121))) -> a__length(a__U11(mark(z059), z121)) [0] mark(length(length(z060))) -> a__length(a__length(mark(z060))) [0] mark(length(and(z061, z122))) -> a__length(a__and(mark(z061), z122)) [0] mark(length(isNat(z062))) -> a__length(a__isNat(z062)) [0] mark(length(isNatList(z063))) -> a__length(a__isNatList(z063)) [0] mark(length(isNatIList(z064))) -> a__length(a__isNatIList(z064)) [0] mark(length(cons(z065, z123))) -> a__length(cons(mark(z065), z123)) [0] mark(length(0)) -> a__length(0) [0] mark(length(tt)) -> a__length(tt) [0] mark(length(s(z066))) -> a__length(s(mark(z066))) [0] mark(length(nil)) -> a__length(nil) [0] mark(length(z0)) -> a__length(null_mark) [0] mark(and(zeros, z1)) -> a__and(a__zeros, z1) [0] mark(and(U11(z067, z124), z1)) -> a__and(a__U11(mark(z067), z124), z1) [0] mark(and(length(z068), z1)) -> a__and(a__length(mark(z068)), z1) [0] mark(and(and(z069, z125), z1)) -> a__and(a__and(mark(z069), z125), z1) [0] mark(and(isNat(z070), z1)) -> a__and(a__isNat(z070), z1) [0] mark(and(isNatList(z071), z1)) -> a__and(a__isNatList(z071), z1) [0] mark(and(isNatIList(z072), z1)) -> a__and(a__isNatIList(z072), z1) [0] mark(and(cons(z073, z126), z1)) -> a__and(cons(mark(z073), z126), z1) [0] mark(and(0, z1)) -> a__and(0, z1) [0] mark(and(tt, z1)) -> a__and(tt, z1) [0] mark(and(s(z074), z1)) -> a__and(s(mark(z074)), z1) [0] mark(and(nil, z1)) -> a__and(nil, z1) [0] mark(and(z0, z1)) -> a__and(null_mark, z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c2 tt :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c2 :: c18 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c2 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c18 mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark MARK :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c21:c22:c23:c24:c25:c26:c27:c30 A__AND :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c4 c4 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c4 A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c7:c8 length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c7 :: c15 -> c7:c8 A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c15 s :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c8 :: c7:c8 -> c7:c8 A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c10:c12 c10 :: c15 -> c10:c12 cons :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c12 :: c4 -> c7:c8 -> c10:c12 a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c15 :: c4 -> c7:c8 -> c15 isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c18 :: c2 -> c4 -> c15 -> c18 a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c21 :: c2 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c22 :: c18 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c23 :: c4 -> c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c24 :: c7:c8 -> c21:c22:c23:c24:c25:c26:c27:c30 c25 :: c15 -> c21:c22:c23:c24:c25:c26:c27:c30 c26 :: c10:c12 -> c21:c22:c23:c24:c25:c26:c27:c30 c27 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 c30 :: c21:c22:c23:c24:c25:c26:c27:c30 -> c21:c22:c23:c24:c25:c26:c27:c30 a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark 0 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark nil :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark const :: c2 const1 :: c18 const2 :: c21:c22:c23:c24:c25:c26:c27:c30 const3 :: c4 const4 :: c7:c8 const5 :: c15 const6 :: c10:c12 Rewrite Strategy: INNERMOST ---------------------------------------- (57) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 zeros => 3 nil => 1 null_a__zeros => 0 null_a__U11 => 0 null_a__and => 0 null_a__isNat => 0 null_a__isNatIList => 0 null_a__isNatList => 0 null_a__length => 0 null_mark => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 const4 => 0 const5 => 0 const6 => 0 ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z07), 1 + z1) + A__ISNAT(1 + z07) :|: z1 >= 0, z07 >= 0, z = 1 + (1 + z07) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z08), 1 + z1) + A__ISNAT(1 + z08) :|: z08 >= 0, z1 >= 0, z = 1 + (1 + z08) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z09), 1 + z1) + A__ISNAT(1 + z09) :|: z1 >= 0, z = 1 + (1 + z09) + z1, z09 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z010), 1 + z1) + A__ISNAT(1 + z010) :|: z1 >= 0, z = 1 + (1 + z010) + z1, z010 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(a__and(a__isNat(z011), 1 + z12), 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(1 + (1 + z011 + z12), 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(0, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(1 + 1, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z013 + z14) + A__AND(a__and(a__isNat(z013), 1 + z14), 1 + z0) + A__ISNATLIST(1 + z013 + z14) :|: z = 1 + z0 + (1 + z013 + z14), z013 >= 0, z0 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + 1, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z012 + z13), 1 + z0), 1 + z012 + z13) + A__AND(a__and(a__isNat(z012), 1 + z13), 1 + z0) + A__ISNATLIST(1 + z012 + z13) :|: z = 1 + z0 + (1 + z012 + z13), z0 >= 0, z012 >= 0, z13 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__zeros) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__length(mark(z0''))) + MARK(1 + z0'') :|: z = 2, z' = 1 + z0'', z0'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatList(z03)) + MARK(1 + z03) :|: z = 2, z' = 1 + z03, z03 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z04)) + MARK(1 + z04) :|: z = 2, z04 >= 0, z' = 1 + z04 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNat(z02)) + MARK(1 + z02) :|: z = 2, z02 >= 0, z' = 1 + z02 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__and(mark(z01), z1'')) + MARK(1 + z01 + z1'') :|: z = 2, z01 >= 0, z' = 1 + z01 + z1'', z1'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z0'), z1')) + MARK(1 + z0' + z1') :|: z = 2, z0' >= 0, z1' >= 0, z' = 1 + z0' + z1' A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 2, z' = 2 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 2, z' = 1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 2, z' = 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z06)) + MARK(1 + z06) :|: z = 2, z06 >= 0, z' = 1 + z06 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z05) + z11) + MARK(1 + z05 + z11) :|: z = 2, z11 >= 0, z' = 1 + z05 + z11, z05 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__zeros, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__length(mark(z015)), z1) + MARK(1 + z015) :|: z015 >= 0, z1 >= 0, z = 1 + (1 + z015) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatList(z018), z1) + MARK(1 + z018) :|: z1 >= 0, z = 1 + (1 + z018) + z1, z018 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatIList(z019), z1) + MARK(1 + z019) :|: z019 >= 0, z1 >= 0, z = 1 + (1 + z019) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNat(z017), z1) + MARK(1 + z017) :|: z1 >= 0, z = 1 + (1 + z017) + z1, z017 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__and(mark(z016), z16), z1) + MARK(1 + z016 + z16) :|: z = 1 + (1 + z016 + z16) + z1, z1 >= 0, z016 >= 0, z16 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U11(mark(z014), z15), z1) + MARK(1 + z014 + z15) :|: z = 1 + (1 + z014 + z15) + z1, z15 >= 0, z1 >= 0, z014 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z021), z1) + MARK(1 + z021) :|: z021 >= 0, z1 >= 0, z = 1 + (1 + z021) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z020) + z17, z1) + MARK(1 + z020 + z17) :|: z1 >= 0, z17 >= 0, z = 1 + (1 + z020 + z17) + z1, z020 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__zeros) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__length(mark(z023))) + MARK(1 + z023) :|: z023 >= 0, z = 1 + (1 + z023) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatList(z026)) + MARK(1 + z026) :|: z = 1 + (1 + z026), z026 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z027)) + MARK(1 + z027) :|: z027 >= 0, z = 1 + (1 + z027) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNat(z025)) + MARK(1 + z025) :|: z025 >= 0, z = 1 + (1 + z025) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__and(mark(z024), z19)) + MARK(1 + z024 + z19) :|: z19 >= 0, z024 >= 0, z = 1 + (1 + z024 + z19) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z022), z18)) + MARK(1 + z022 + z18) :|: z18 >= 0, z022 >= 0, z = 1 + (1 + z022 + z18) MARK(z) -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 1 + 2 MARK(z) -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z029)) + MARK(1 + z029) :|: z029 >= 0, z = 1 + (1 + z029) MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z028) + z110) + MARK(1 + z028 + z110) :|: z110 >= 0, z028 >= 0, z = 1 + (1 + z028 + z110) MARK(z) -{ 1 }-> 1 + A__AND(a__zeros, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__length(mark(z031)), z1) + MARK(1 + z031) :|: z = 1 + (1 + z031) + z1, z031 >= 0, z1 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatList(z034), z1) + MARK(1 + z034) :|: z1 >= 0, z034 >= 0, z = 1 + (1 + z034) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatIList(z035), z1) + MARK(1 + z035) :|: z035 >= 0, z1 >= 0, z = 1 + (1 + z035) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNat(z033), z1) + MARK(1 + z033) :|: z1 >= 0, z = 1 + (1 + z033) + z1, z033 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__and(mark(z032), z112), z1) + MARK(1 + z032 + z112) :|: z032 >= 0, z1 >= 0, z112 >= 0, z = 1 + (1 + z032 + z112) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__U11(mark(z030), z111), z1) + MARK(1 + z030 + z111) :|: z1 >= 0, z111 >= 0, z = 1 + (1 + z030 + z111) + z1, z030 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z037), z1) + MARK(1 + z037) :|: z1 >= 0, z = 1 + (1 + z037) + z1, z037 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z036) + z113, z1) + MARK(1 + z036 + z113) :|: z036 >= 0, z1 >= 0, z113 >= 0, z = 1 + (1 + z036 + z113) + z1 a__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U11(z, z') -{ 0 }-> 1 + a__length(a__zeros) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(a__length(mark(z039))) :|: z = 2, z039 >= 0, z' = 1 + z039 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatList(z042)) :|: z = 2, z' = 1 + z042, z042 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatIList(z043)) :|: z = 2, z' = 1 + z043, z043 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNat(z041)) :|: z = 2, z' = 1 + z041, z041 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__and(mark(z040), z115)) :|: z = 2, z040 >= 0, z115 >= 0, z' = 1 + z040 + z115 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U11(mark(z038), z114)) :|: z = 2, z' = 1 + z038 + z114, z114 >= 0, z038 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 0 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z0 >= 0, z' = z0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z045)) :|: z = 2, z045 >= 0, z' = 1 + z045 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z044) + z116) :|: z = 2, z' = 1 + z044 + z116, z044 >= 0, z116 >= 0 a__U11(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNat(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z0) :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNatList(z046), 1 + z1) :|: z = 1 + (1 + z046) + z1, z046 >= 0, z1 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z047), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z047) + z1, z047 >= 0 a__isNatIList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatIList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatIList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z048), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z048) + z1, z048 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z049), 1 + z1) :|: z1 >= 0, z049 >= 0, z = 1 + (1 + z049) + z1 a__isNatList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z050), 1 + z117), 1 + z0), 1 + z050 + z117) :|: z = 1 + z0 + (1 + z050 + z117), z117 >= 0, z0 >= 0, z050 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(2, 1 + z0), 1) :|: z0 >= 0, z = 1 + z0 + 1 a__length(z) -{ 0 }-> a__U11(a__and(0, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> a__U11(a__and(1 + z1, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__length(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__zeros :|: z = 3 mark(z) -{ 0 }-> a__length(a__zeros) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(a__length(mark(z060))) :|: z = 1 + (1 + z060), z060 >= 0 mark(z) -{ 0 }-> a__length(a__isNatList(z063)) :|: z063 >= 0, z = 1 + (1 + z063) mark(z) -{ 0 }-> a__length(a__isNatIList(z064)) :|: z = 1 + (1 + z064), z064 >= 0 mark(z) -{ 0 }-> a__length(a__isNat(z062)) :|: z062 >= 0, z = 1 + (1 + z062) mark(z) -{ 0 }-> a__length(a__and(mark(z061), z122)) :|: z061 >= 0, z122 >= 0, z = 1 + (1 + z061 + z122) mark(z) -{ 0 }-> a__length(a__U11(mark(z059), z121)) :|: z121 >= 0, z = 1 + (1 + z059 + z121), z059 >= 0 mark(z) -{ 0 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z066)) :|: z = 1 + (1 + z066), z066 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z065) + z123) :|: z123 >= 0, z065 >= 0, z = 1 + (1 + z065 + z123) mark(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatIList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(a__zeros, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__and(a__length(mark(z068)), z1) :|: z1 >= 0, z068 >= 0, z = 1 + (1 + z068) + z1 mark(z) -{ 0 }-> a__and(a__isNatList(z071), z1) :|: z = 1 + (1 + z071) + z1, z1 >= 0, z071 >= 0 mark(z) -{ 0 }-> a__and(a__isNatIList(z072), z1) :|: z1 >= 0, z = 1 + (1 + z072) + z1, z072 >= 0 mark(z) -{ 0 }-> a__and(a__isNat(z070), z1) :|: z1 >= 0, z = 1 + (1 + z070) + z1, z070 >= 0 mark(z) -{ 0 }-> a__and(a__and(mark(z069), z125), z1) :|: z1 >= 0, z = 1 + (1 + z069 + z125) + z1, z069 >= 0, z125 >= 0 mark(z) -{ 0 }-> a__and(a__U11(mark(z067), z124), z1) :|: z1 >= 0, z124 >= 0, z = 1 + (1 + z067 + z124) + z1, z067 >= 0 mark(z) -{ 0 }-> a__and(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__and(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__and(1 + mark(z074), z1) :|: z1 >= 0, z074 >= 0, z = 1 + (1 + z074) + z1 mark(z) -{ 0 }-> a__and(1 + mark(z073) + z126, z1) :|: z = 1 + (1 + z073 + z126) + z1, z1 >= 0, z073 >= 0, z126 >= 0 mark(z) -{ 0 }-> a__U11(a__zeros, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(a__length(mark(z052)), z1) :|: z = 1 + (1 + z052) + z1, z052 >= 0, z1 >= 0 mark(z) -{ 0 }-> a__U11(a__isNatList(z055), z1) :|: z1 >= 0, z055 >= 0, z = 1 + (1 + z055) + z1 mark(z) -{ 0 }-> a__U11(a__isNatIList(z056), z1) :|: z056 >= 0, z1 >= 0, z = 1 + (1 + z056) + z1 mark(z) -{ 0 }-> a__U11(a__isNat(z054), z1) :|: z = 1 + (1 + z054) + z1, z1 >= 0, z054 >= 0 mark(z) -{ 0 }-> a__U11(a__and(mark(z053), z119), z1) :|: z1 >= 0, z053 >= 0, z119 >= 0, z = 1 + (1 + z053 + z119) + z1 mark(z) -{ 0 }-> a__U11(a__U11(mark(z051), z118), z1) :|: z1 >= 0, z118 >= 0, z = 1 + (1 + z051 + z118) + z1, z051 >= 0 mark(z) -{ 0 }-> a__U11(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__U11(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z058), z1) :|: z1 >= 0, z058 >= 0, z = 1 + (1 + z058) + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z057) + z120, z1) :|: z120 >= 0, z1 >= 0, z = 1 + (1 + z057 + z120) + z1, z057 >= 0 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (59) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z07), 1 + z1) + A__ISNAT(1 + z07) :|: z1 >= 0, z07 >= 0, z = 1 + (1 + z07) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z08), 1 + z1) + A__ISNAT(1 + z08) :|: z08 >= 0, z1 >= 0, z = 1 + (1 + z08) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z09), 1 + z1) + A__ISNAT(1 + z09) :|: z1 >= 0, z = 1 + (1 + z09) + z1, z09 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z010), 1 + z1) + A__ISNAT(1 + z010) :|: z1 >= 0, z = 1 + (1 + z010) + z1, z010 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(2, 1 + z1) + A__ISNAT(0) :|: z1 >= 0, z = 1 + 0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(a__and(a__isNat(z011), 1 + z12), 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(1 + (1 + z011 + z12), 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(0, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + z0), 1) + A__AND(1 + 1, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z013 + z14) + A__AND(a__and(a__isNat(z013), 1 + z14), 1 + z0) + A__ISNATLIST(1 + z013 + z14) :|: z = 1 + z0 + (1 + z013 + z14), z013 >= 0, z0 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + 1, 1 + z0), 1) + A__AND(2, 1 + z0) + A__ISNATLIST(1) :|: z0 >= 0, z = 1 + z0 + 1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z012 + z13), 1 + z0), 1 + z012 + z13) + A__AND(a__and(a__isNat(z012), 1 + z13), 1 + z0) + A__ISNATLIST(1 + z012 + z13) :|: z = 1 + z0 + (1 + z012 + z13), z0 >= 0, z012 >= 0, z13 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__length(mark(z0''))) + MARK(1 + z0'') :|: z = 2, z' = 1 + z0'', z0'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatList(z03)) + MARK(1 + z03) :|: z = 2, z' = 1 + z03, z03 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z04)) + MARK(1 + z04) :|: z = 2, z04 >= 0, z' = 1 + z04 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNat(z02)) + MARK(1 + z02) :|: z = 2, z02 >= 0, z' = 1 + z02 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__and(mark(z01), z1'')) + MARK(1 + z01 + z1'') :|: z = 2, z01 >= 0, z' = 1 + z01 + z1'', z1'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z0'), z1')) + MARK(1 + z0' + z1') :|: z = 2, z0' >= 0, z1' >= 0, z' = 1 + z0' + z1' A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 2, z' = 2 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 2, z' = 1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 2, z' = 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z06)) + MARK(1 + z06) :|: z = 2, z06 >= 0, z' = 1 + z06 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z05) + z11) + MARK(1 + z05 + z11) :|: z = 2, z11 >= 0, z' = 1 + z05 + z11, z05 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 2, z' = 3 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__length(mark(z015)), z1) + MARK(1 + z015) :|: z015 >= 0, z1 >= 0, z = 1 + (1 + z015) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatList(z018), z1) + MARK(1 + z018) :|: z1 >= 0, z = 1 + (1 + z018) + z1, z018 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatIList(z019), z1) + MARK(1 + z019) :|: z019 >= 0, z1 >= 0, z = 1 + (1 + z019) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNat(z017), z1) + MARK(1 + z017) :|: z1 >= 0, z = 1 + (1 + z017) + z1, z017 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__and(mark(z016), z16), z1) + MARK(1 + z016 + z16) :|: z = 1 + (1 + z016 + z16) + z1, z1 >= 0, z016 >= 0, z16 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U11(mark(z014), z15), z1) + MARK(1 + z014 + z15) :|: z = 1 + (1 + z014 + z15) + z1, z15 >= 0, z1 >= 0, z014 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__U11(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z021), z1) + MARK(1 + z021) :|: z021 >= 0, z1 >= 0, z = 1 + (1 + z021) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z020) + z17, z1) + MARK(1 + z020 + z17) :|: z1 >= 0, z17 >= 0, z = 1 + (1 + z020 + z17) + z1, z020 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(1 + 0 + 3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__length(mark(z023))) + MARK(1 + z023) :|: z023 >= 0, z = 1 + (1 + z023) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatList(z026)) + MARK(1 + z026) :|: z = 1 + (1 + z026), z026 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z027)) + MARK(1 + z027) :|: z027 >= 0, z = 1 + (1 + z027) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNat(z025)) + MARK(1 + z025) :|: z025 >= 0, z = 1 + (1 + z025) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__and(mark(z024), z19)) + MARK(1 + z024 + z19) :|: z19 >= 0, z024 >= 0, z = 1 + (1 + z024 + z19) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z022), z18)) + MARK(1 + z022 + z18) :|: z18 >= 0, z022 >= 0, z = 1 + (1 + z022 + z18) MARK(z) -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 1 + 2 MARK(z) -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z029)) + MARK(1 + z029) :|: z029 >= 0, z = 1 + (1 + z029) MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z028) + z110) + MARK(1 + z028 + z110) :|: z110 >= 0, z028 >= 0, z = 1 + (1 + z028 + z110) MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__AND(a__length(mark(z031)), z1) + MARK(1 + z031) :|: z = 1 + (1 + z031) + z1, z031 >= 0, z1 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatList(z034), z1) + MARK(1 + z034) :|: z1 >= 0, z034 >= 0, z = 1 + (1 + z034) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatIList(z035), z1) + MARK(1 + z035) :|: z035 >= 0, z1 >= 0, z = 1 + (1 + z035) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNat(z033), z1) + MARK(1 + z033) :|: z1 >= 0, z = 1 + (1 + z033) + z1, z033 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__and(mark(z032), z112), z1) + MARK(1 + z032 + z112) :|: z032 >= 0, z1 >= 0, z112 >= 0, z = 1 + (1 + z032 + z112) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__U11(mark(z030), z111), z1) + MARK(1 + z030 + z111) :|: z1 >= 0, z111 >= 0, z = 1 + (1 + z030 + z111) + z1, z030 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__AND(2, z1) + MARK(2) :|: z1 >= 0, z = 1 + 2 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1, z1) + MARK(1) :|: z1 >= 0, z = 1 + 1 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(0) :|: z1 >= 0, z = 1 + 0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z037), z1) + MARK(1 + z037) :|: z1 >= 0, z = 1 + (1 + z037) + z1, z037 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z036) + z113, z1) + MARK(1 + z036 + z113) :|: z036 >= 0, z1 >= 0, z113 >= 0, z = 1 + (1 + z036 + z113) + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + 0 + 3, z1) + MARK(3) :|: z1 >= 0, z = 1 + 3 + z1 a__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U11(z, z') -{ 0 }-> 1 + a__length(a__length(mark(z039))) :|: z = 2, z039 >= 0, z' = 1 + z039 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatList(z042)) :|: z = 2, z' = 1 + z042, z042 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatIList(z043)) :|: z = 2, z' = 1 + z043, z043 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNat(z041)) :|: z = 2, z' = 1 + z041, z041 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__and(mark(z040), z115)) :|: z = 2, z040 >= 0, z115 >= 0, z' = 1 + z040 + z115 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U11(mark(z038), z114)) :|: z = 2, z' = 1 + z038 + z114, z114 >= 0, z038 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 0 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z0 >= 0, z' = z0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z045)) :|: z = 2, z045 >= 0, z' = 1 + z045 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z044) + z116) :|: z = 2, z' = 1 + z044 + z116, z044 >= 0, z116 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNat(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z0) :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNatList(z046), 1 + z1) :|: z = 1 + (1 + z046) + z1, z046 >= 0, z1 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z047), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z047) + z1, z047 >= 0 a__isNatIList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatIList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatIList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z048), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z048) + z1, z048 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z049), 1 + z1) :|: z1 >= 0, z049 >= 0, z = 1 + (1 + z049) + z1 a__isNatList(z) -{ 0 }-> a__and(2, 1 + z1) :|: z1 >= 0, z = 1 + 0 + z1 a__isNatList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z050), 1 + z117), 1 + z0), 1 + z050 + z117) :|: z = 1 + z0 + (1 + z050 + z117), z117 >= 0, z0 >= 0, z050 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(2, 1 + z0), 1) :|: z0 >= 0, z = 1 + z0 + 1 a__length(z) -{ 0 }-> a__U11(a__and(0, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> a__U11(a__and(1 + z1, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__length(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__length(a__length(mark(z060))) :|: z = 1 + (1 + z060), z060 >= 0 mark(z) -{ 0 }-> a__length(a__isNatList(z063)) :|: z063 >= 0, z = 1 + (1 + z063) mark(z) -{ 0 }-> a__length(a__isNatIList(z064)) :|: z = 1 + (1 + z064), z064 >= 0 mark(z) -{ 0 }-> a__length(a__isNat(z062)) :|: z062 >= 0, z = 1 + (1 + z062) mark(z) -{ 0 }-> a__length(a__and(mark(z061), z122)) :|: z061 >= 0, z122 >= 0, z = 1 + (1 + z061 + z122) mark(z) -{ 0 }-> a__length(a__U11(mark(z059), z121)) :|: z121 >= 0, z = 1 + (1 + z059 + z121), z059 >= 0 mark(z) -{ 0 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(1 + mark(z066)) :|: z = 1 + (1 + z066), z066 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z065) + z123) :|: z123 >= 0, z065 >= 0, z = 1 + (1 + z065 + z123) mark(z) -{ 0 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatIList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(a__length(mark(z068)), z1) :|: z1 >= 0, z068 >= 0, z = 1 + (1 + z068) + z1 mark(z) -{ 0 }-> a__and(a__isNatList(z071), z1) :|: z = 1 + (1 + z071) + z1, z1 >= 0, z071 >= 0 mark(z) -{ 0 }-> a__and(a__isNatIList(z072), z1) :|: z1 >= 0, z = 1 + (1 + z072) + z1, z072 >= 0 mark(z) -{ 0 }-> a__and(a__isNat(z070), z1) :|: z1 >= 0, z = 1 + (1 + z070) + z1, z070 >= 0 mark(z) -{ 0 }-> a__and(a__and(mark(z069), z125), z1) :|: z1 >= 0, z = 1 + (1 + z069 + z125) + z1, z069 >= 0, z125 >= 0 mark(z) -{ 0 }-> a__and(a__U11(mark(z067), z124), z1) :|: z1 >= 0, z124 >= 0, z = 1 + (1 + z067 + z124) + z1, z067 >= 0 mark(z) -{ 0 }-> a__and(3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__and(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__and(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__and(1 + mark(z074), z1) :|: z1 >= 0, z074 >= 0, z = 1 + (1 + z074) + z1 mark(z) -{ 0 }-> a__and(1 + mark(z073) + z126, z1) :|: z = 1 + (1 + z073 + z126) + z1, z1 >= 0, z073 >= 0, z126 >= 0 mark(z) -{ 0 }-> a__and(1 + 0 + 3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(a__length(mark(z052)), z1) :|: z = 1 + (1 + z052) + z1, z052 >= 0, z1 >= 0 mark(z) -{ 0 }-> a__U11(a__isNatList(z055), z1) :|: z1 >= 0, z055 >= 0, z = 1 + (1 + z055) + z1 mark(z) -{ 0 }-> a__U11(a__isNatIList(z056), z1) :|: z056 >= 0, z1 >= 0, z = 1 + (1 + z056) + z1 mark(z) -{ 0 }-> a__U11(a__isNat(z054), z1) :|: z = 1 + (1 + z054) + z1, z1 >= 0, z054 >= 0 mark(z) -{ 0 }-> a__U11(a__and(mark(z053), z119), z1) :|: z1 >= 0, z053 >= 0, z119 >= 0, z = 1 + (1 + z053 + z119) + z1 mark(z) -{ 0 }-> a__U11(a__U11(mark(z051), z118), z1) :|: z1 >= 0, z118 >= 0, z = 1 + (1 + z051 + z118) + z1, z051 >= 0 mark(z) -{ 0 }-> a__U11(3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(2, z1) :|: z1 >= 0, z = 1 + 2 + z1 mark(z) -{ 0 }-> a__U11(1, z1) :|: z1 >= 0, z = 1 + 1 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z = 1 + 0 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z058), z1) :|: z1 >= 0, z058 >= 0, z = 1 + (1 + z058) + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z057) + z120, z1) :|: z120 >= 0, z1 >= 0, z = 1 + (1 + z057 + z120) + z1, z057 >= 0 mark(z) -{ 0 }-> a__U11(1 + 0 + 3, z1) :|: z1 >= 0, z = 1 + 3 + z1 mark(z) -{ 0 }-> 3 :|: z = 3 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 0 :|: z = 3 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (61) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 1 }-> 1 + MARK(z') :|: z = 2, z' >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z - 1) :|: z - 1 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z - 1) :|: z - 1 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z) :|: z >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z07), 1 + z1) + A__ISNAT(1 + z07) :|: z1 >= 0, z07 >= 0, z = 1 + (1 + z07) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z08), 1 + z1) + A__ISNAT(1 + z08) :|: z08 >= 0, z1 >= 0, z = 1 + (1 + z08) + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(2, 1 + (z - 1)) + A__ISNAT(0) :|: z - 1 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNatList(z09), 1 + z1) + A__ISNAT(1 + z09) :|: z1 >= 0, z = 1 + (1 + z09) + z1, z09 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z010), 1 + z1) + A__ISNAT(1 + z010) :|: z1 >= 0, z = 1 + (1 + z010) + z1, z010 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(2, 1 + (z - 1)) + A__ISNAT(0) :|: z - 1 >= 0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(1 + z0, 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(a__and(a__isNat(z011), 1 + z12), 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(0, 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__and(a__isNat(z011), 1 + z12), 1 + z0), 1 + z011 + z12) + A__AND(1 + (1 + z011 + z12), 1 + z0) + A__ISNATLIST(1 + z011 + z12) :|: z011 >= 0, z0 >= 0, z12 >= 0, z = 1 + z0 + (1 + z011 + z12) A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + (z - 2)), 1) + A__AND(2, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + (z - 2)), 1) + A__AND(0, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(2, 1 + (z - 2)), 1) + A__AND(1 + 1, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + z0), 1 + z013 + z14) + A__AND(a__and(a__isNat(z013), 1 + z14), 1 + z0) + A__ISNATLIST(1 + z013 + z14) :|: z = 1 + z0 + (1 + z013 + z14), z013 >= 0, z0 >= 0, z14 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(0, 1 + (z - 2)), 1) + A__AND(2, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(0, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + z1, 1 + z0), z1) + A__AND(1 + z1, 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + 1, 1 + (z - 2)), 1) + A__AND(2, 1 + (z - 2)) + A__ISNATLIST(1) :|: z - 2 >= 0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(1 + (1 + z012 + z13), 1 + z0), 1 + z012 + z13) + A__AND(a__and(a__isNat(z012), 1 + z13), 1 + z0) + A__ISNATLIST(1 + z012 + z13) :|: z = 1 + z0 + (1 + z012 + z13), z0 >= 0, z012 >= 0, z13 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__length(mark(z' - 1))) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatList(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__isNat(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__and(mark(z01), z1'')) + MARK(1 + z01 + z1'') :|: z = 2, z01 >= 0, z' = 1 + z01 + z1'', z1'' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z0'), z1')) + MARK(1 + z0' + z1') :|: z = 2, z0' >= 0, z1' >= 0, z' = 1 + z0' + z1' A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 2, z' = 2 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 2, z' = 1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(z') :|: z = 2, z' >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 2, z' = 3 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 2, z' = 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z' - 1)) + MARK(1 + (z' - 1)) :|: z = 2, z' - 1 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + mark(z05) + z11) + MARK(1 + z05 + z11) :|: z = 2, z11 >= 0, z' = 1 + z05 + z11, z05 >= 0 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 2, z' = 3 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__length(mark(z015)), z1) + MARK(1 + z015) :|: z015 >= 0, z1 >= 0, z = 1 + (1 + z015) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatList(z018), z1) + MARK(1 + z018) :|: z1 >= 0, z = 1 + (1 + z018) + z1, z018 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__isNatIList(z019), z1) + MARK(1 + z019) :|: z019 >= 0, z1 >= 0, z = 1 + (1 + z019) + z1 MARK(z) -{ 1 }-> 1 + A__U11(a__isNat(z017), z1) + MARK(1 + z017) :|: z1 >= 0, z = 1 + (1 + z017) + z1, z017 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__and(mark(z016), z16), z1) + MARK(1 + z016 + z16) :|: z = 1 + (1 + z016 + z16) + z1, z1 >= 0, z016 >= 0, z16 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(a__U11(mark(z014), z15), z1) + MARK(1 + z014 + z15) :|: z = 1 + (1 + z014 + z15) + z1, z15 >= 0, z1 >= 0, z014 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(3, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(2, z - 3) + MARK(2) :|: z - 3 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(1, z - 2) + MARK(1) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(0, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(0, z - 1) + MARK(0) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z021), z1) + MARK(1 + z021) :|: z021 >= 0, z1 >= 0, z = 1 + (1 + z021) + z1 MARK(z) -{ 1 }-> 1 + A__U11(1 + mark(z020) + z17, z1) + MARK(1 + z020 + z17) :|: z1 >= 0, z17 >= 0, z = 1 + (1 + z020 + z17) + z1, z020 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(1 + 0 + 3, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__length(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatList(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNatIList(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__isNat(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(a__and(mark(z024), z19)) + MARK(1 + z024 + z19) :|: z19 >= 0, z024 >= 0, z = 1 + (1 + z024 + z19) MARK(z) -{ 1 }-> 1 + A__LENGTH(a__U11(mark(z022), z18)) + MARK(1 + z022 + z18) :|: z18 >= 0, z022 >= 0, z = 1 + (1 + z022 + z18) MARK(z) -{ 1 }-> 1 + A__LENGTH(3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(2) + MARK(2) :|: z = 1 + 2 MARK(z) -{ 1 }-> 1 + A__LENGTH(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(0) + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + mark(z028) + z110) + MARK(1 + z028 + z110) :|: z110 >= 0, z028 >= 0, z = 1 + (1 + z028 + z110) MARK(z) -{ 1 }-> 1 + A__LENGTH(1 + 0 + 3) + MARK(3) :|: z = 1 + 3 MARK(z) -{ 1 }-> 1 + A__AND(a__length(mark(z031)), z1) + MARK(1 + z031) :|: z = 1 + (1 + z031) + z1, z031 >= 0, z1 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatList(z034), z1) + MARK(1 + z034) :|: z1 >= 0, z034 >= 0, z = 1 + (1 + z034) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNatIList(z035), z1) + MARK(1 + z035) :|: z035 >= 0, z1 >= 0, z = 1 + (1 + z035) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__isNat(z033), z1) + MARK(1 + z033) :|: z1 >= 0, z = 1 + (1 + z033) + z1, z033 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(a__and(mark(z032), z112), z1) + MARK(1 + z032 + z112) :|: z032 >= 0, z1 >= 0, z112 >= 0, z = 1 + (1 + z032 + z112) + z1 MARK(z) -{ 1 }-> 1 + A__AND(a__U11(mark(z030), z111), z1) + MARK(1 + z030 + z111) :|: z1 >= 0, z111 >= 0, z = 1 + (1 + z030 + z111) + z1, z030 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(3, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(2, z - 3) + MARK(2) :|: z - 3 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1, z - 2) + MARK(1) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(0, z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(0, z - 4) + MARK(3) :|: z - 4 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(0, z - 1) + MARK(0) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z037), z1) + MARK(1 + z037) :|: z1 >= 0, z = 1 + (1 + z037) + z1, z037 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(1 + mark(z036) + z113, z1) + MARK(1 + z036 + z113) :|: z036 >= 0, z1 >= 0, z113 >= 0, z = 1 + (1 + z036 + z113) + z1 MARK(z) -{ 1 }-> 1 + A__AND(1 + 0 + 3, z - 4) + MARK(3) :|: z - 4 >= 0 a__U11(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__length(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNatIList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__isNat(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(a__and(mark(z040), z115)) :|: z = 2, z040 >= 0, z115 >= 0, z' = 1 + z040 + z115 a__U11(z, z') -{ 0 }-> 1 + a__length(a__U11(mark(z038), z114)) :|: z = 2, z' = 1 + z038 + z114, z114 >= 0, z038 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__U11(z, z') -{ 0 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(0) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z' - 1)) :|: z = 2, z' - 1 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + mark(z044) + z116) :|: z = 2, z' = 1 + z044 + z116, z044 >= 0, z116 >= 0 a__U11(z, z') -{ 0 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__U11(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__and(z, z') -{ 0 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__and(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: z >= 0 a__isNat(z) -{ 0 }-> 1 + z :|: z >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z) :|: z >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNatList(z046), 1 + z1) :|: z = 1 + (1 + z046) + z1, z046 >= 0, z1 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z047), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z047) + z1, z047 >= 0 a__isNatIList(z) -{ 0 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: z >= 0 a__isNatIList(z) -{ 0 }-> 1 + z :|: z >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNatList(z048), 1 + z1) :|: z1 >= 0, z = 1 + (1 + z048) + z1, z048 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z049), 1 + z1) :|: z1 >= 0, z049 >= 0, z = 1 + (1 + z049) + z1 a__isNatList(z) -{ 0 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 0 }-> a__and(0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(1 + z0, 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: z >= 0 a__isNatList(z) -{ 0 }-> 1 + z :|: z >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__and(a__isNat(z050), 1 + z117), 1 + z0), 1 + z050 + z117) :|: z = 1 + z0 + (1 + z050 + z117), z117 >= 0, z0 >= 0, z050 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(2, 1 + (z - 2)), 1) :|: z - 2 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(0, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> a__U11(a__and(1 + z1, 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: z >= 0 a__length(z) -{ 0 }-> 1 + z :|: z >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__length(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(a__and(mark(z061), z122)) :|: z061 >= 0, z122 >= 0, z = 1 + (1 + z061 + z122) mark(z) -{ 0 }-> a__length(a__U11(mark(z059), z121)) :|: z121 >= 0, z = 1 + (1 + z059 + z121), z059 >= 0 mark(z) -{ 0 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 0 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__length(0) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__length(0) :|: z = 1 + 3 mark(z) -{ 0 }-> a__length(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__length(1 + mark(z065) + z123) :|: z123 >= 0, z065 >= 0, z = 1 + (1 + z065 + z123) mark(z) -{ 0 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 0 }-> a__isNatList(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__isNatIList(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__isNat(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__and(a__length(mark(z068)), z1) :|: z1 >= 0, z068 >= 0, z = 1 + (1 + z068) + z1 mark(z) -{ 0 }-> a__and(a__isNatList(z071), z1) :|: z = 1 + (1 + z071) + z1, z1 >= 0, z071 >= 0 mark(z) -{ 0 }-> a__and(a__isNatIList(z072), z1) :|: z1 >= 0, z = 1 + (1 + z072) + z1, z072 >= 0 mark(z) -{ 0 }-> a__and(a__isNat(z070), z1) :|: z1 >= 0, z = 1 + (1 + z070) + z1, z070 >= 0 mark(z) -{ 0 }-> a__and(a__and(mark(z069), z125), z1) :|: z1 >= 0, z = 1 + (1 + z069 + z125) + z1, z069 >= 0, z125 >= 0 mark(z) -{ 0 }-> a__and(a__U11(mark(z067), z124), z1) :|: z1 >= 0, z124 >= 0, z = 1 + (1 + z067 + z124) + z1, z067 >= 0 mark(z) -{ 0 }-> a__and(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__and(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 0 }-> a__and(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__and(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__and(0, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__and(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__and(1 + mark(z074), z1) :|: z1 >= 0, z074 >= 0, z = 1 + (1 + z074) + z1 mark(z) -{ 0 }-> a__and(1 + mark(z073) + z126, z1) :|: z = 1 + (1 + z073 + z126) + z1, z1 >= 0, z073 >= 0, z126 >= 0 mark(z) -{ 0 }-> a__and(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__U11(a__length(mark(z052)), z1) :|: z = 1 + (1 + z052) + z1, z052 >= 0, z1 >= 0 mark(z) -{ 0 }-> a__U11(a__isNatList(z055), z1) :|: z1 >= 0, z055 >= 0, z = 1 + (1 + z055) + z1 mark(z) -{ 0 }-> a__U11(a__isNatIList(z056), z1) :|: z056 >= 0, z1 >= 0, z = 1 + (1 + z056) + z1 mark(z) -{ 0 }-> a__U11(a__isNat(z054), z1) :|: z = 1 + (1 + z054) + z1, z1 >= 0, z054 >= 0 mark(z) -{ 0 }-> a__U11(a__and(mark(z053), z119), z1) :|: z1 >= 0, z053 >= 0, z119 >= 0, z = 1 + (1 + z053 + z119) + z1 mark(z) -{ 0 }-> a__U11(a__U11(mark(z051), z118), z1) :|: z1 >= 0, z118 >= 0, z = 1 + (1 + z051 + z118) + z1, z051 >= 0 mark(z) -{ 0 }-> a__U11(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__U11(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 0 }-> a__U11(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__U11(0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(0, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> a__U11(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__U11(1 + mark(z058), z1) :|: z1 >= 0, z058 >= 0, z = 1 + (1 + z058) + z1 mark(z) -{ 0 }-> a__U11(1 + mark(z057) + z120, z1) :|: z120 >= 0, z1 >= 0, z = 1 + (1 + z057 + z120) + z1, z057 >= 0 mark(z) -{ 0 }-> a__U11(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 0 }-> 3 :|: z = 3 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: z >= 0 mark(z) -{ 0 }-> 0 :|: z = 3 mark(z) -{ 0 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (63) 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: a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] mark(v0) -> null_mark [0] A__U11(v0, v1) -> null_A__U11 [0] A__AND(v0, v1) -> null_A__AND [0] A__ISNAT(v0) -> null_A__ISNAT [0] A__ISNATLIST(v0) -> null_A__ISNATLIST [0] A__LENGTH(v0) -> null_A__LENGTH [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__zeros, null_a__U11, null_a__and, null_a__isNat, null_a__isNatIList, null_a__isNatList, null_a__length, null_mark, null_A__U11, null_A__AND, null_A__ISNAT, null_A__ISNATLIST, null_A__LENGTH, null_MARK, const ---------------------------------------- (64) 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: A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) [1] A__AND(tt, z0) -> c4(MARK(z0)) [1] A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) [1] MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) [1] MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(isNat(z0)) -> c24(A__ISNAT(z0)) [1] MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) [1] MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) [1] MARK(cons(z0, z1)) -> c27(MARK(z0)) [1] MARK(s(z0)) -> c30(MARK(z0)) [1] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__U11(tt, z0) -> s(a__length(mark(z0))) [0] a__U11(z0, z1) -> U11(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNat(0) -> tt [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__length(nil) -> 0 [0] a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) [0] a__length(z0) -> length(z0) [0] mark(zeros) -> a__zeros [0] mark(U11(z0, z1)) -> a__U11(mark(z0), z1) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(0) -> 0 [0] mark(tt) -> tt [0] mark(s(z0)) -> s(mark(z0)) [0] mark(nil) -> nil [0] a__zeros -> null_a__zeros [0] a__U11(v0, v1) -> null_a__U11 [0] a__and(v0, v1) -> null_a__and [0] a__isNat(v0) -> null_a__isNat [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNatList(v0) -> null_a__isNatList [0] a__length(v0) -> null_a__length [0] mark(v0) -> null_mark [0] A__U11(v0, v1) -> null_A__U11 [0] A__AND(v0, v1) -> null_A__AND [0] A__ISNAT(v0) -> null_A__ISNAT [0] A__ISNATLIST(v0) -> null_A__ISNATLIST [0] A__LENGTH(v0) -> null_A__LENGTH [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c2:null_A__U11 tt :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c2 :: c18:null_A__LENGTH -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c2:null_A__U11 A__LENGTH :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c18:null_A__LENGTH mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark MARK :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK A__AND :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c4:null_A__AND c4 :: c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c4:null_A__AND A__ISNAT :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c7:c8:null_A__ISNAT length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c7 :: c15:null_A__ISNATLIST -> c7:c8:null_A__ISNAT A__ISNATLIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c15:null_A__ISNATLIST s :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c8 :: c7:c8:null_A__ISNAT -> c7:c8:null_A__ISNAT A__ISNATILIST :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> c10:c12 c10 :: c15:null_A__ISNATLIST -> c10:c12 cons :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c12 :: c4:null_A__AND -> c7:c8:null_A__ISNAT -> c10:c12 a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c15 :: c4:null_A__AND -> c7:c8:null_A__ISNAT -> c15:null_A__ISNATLIST isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c18 :: c2:null_A__U11 -> c4:null_A__AND -> c15:null_A__ISNATLIST -> c18:null_A__LENGTH a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c21 :: c2:null_A__U11 -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK c22 :: c18:null_A__LENGTH -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark c23 :: c4:null_A__AND -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK c24 :: c7:c8:null_A__ISNAT -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK c25 :: c15:null_A__ISNATLIST -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK c26 :: c10:c12 -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK c27 :: c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK c30 :: c21:c22:c23:c24:c25:c26:c27:c30:null_MARK -> c21:c22:c23:c24:c25:c26:c27:c30:null_MARK a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark 0 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark -> tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark nil :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__zeros :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__U11 :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__and :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNat :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNatIList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__isNatList :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_a__length :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_mark :: tt:length:s:cons:isNatIList:isNatList:isNat:U11:and:0:zeros:nil:null_a__zeros:null_a__U11:null_a__and:null_a__isNat:null_a__isNatIList:null_a__isNatList:null_a__length:null_mark null_A__U11 :: c2:null_A__U11 null_A__AND :: c4:null_A__AND null_A__ISNAT :: c7:c8:null_A__ISNAT null_A__ISNATLIST :: c15:null_A__ISNATLIST null_A__LENGTH :: c18:null_A__LENGTH null_MARK :: c21:c22:c23:c24:c25:c26:c27:c30:null_MARK const :: c10:c12 Rewrite Strategy: INNERMOST ---------------------------------------- (65) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 zeros => 3 nil => 1 null_a__zeros => 0 null_a__U11 => 0 null_a__and => 0 null_a__isNat => 0 null_a__isNatIList => 0 null_a__isNatList => 0 null_a__length => 0 null_mark => 0 null_A__U11 => 0 null_A__AND => 0 null_A__ISNAT => 0 null_A__ISNATLIST => 0 null_A__LENGTH => 0 null_MARK => 0 const => 0 ---------------------------------------- (66) Obligation: Complexity RNTS consisting of the following rules: A__AND(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__ISNAT(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 A__ISNAT(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = z0, z0 >= 0 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), 1 + z1) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__LENGTH(z) -{ 1 }-> 1 + A__U11(a__and(a__isNatList(z1), 1 + z0), z1) + A__AND(a__isNatList(z1), 1 + z0) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__U11(z, z') -{ 1 }-> 1 + A__LENGTH(mark(z0)) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 MARK(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATLIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNATILIST(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__ISNAT(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__U11(mark(z0), z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__LENGTH(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(mark(z0), z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__U11(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U11(z, z') -{ 0 }-> 1 + a__length(mark(z0)) :|: z = 2, z0 >= 0, z' = z0 a__U11(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 a__isNat(z) -{ 0 }-> 2 :|: z = 0 a__isNat(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNat(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__isNatList(z0) :|: z = z0, z0 >= 0 a__isNatIList(z) -{ 0 }-> a__and(a__isNat(z0), 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatIList(z) -{ 0 }-> 2 :|: z = 3 a__isNatIList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatIList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0), 1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> 2 :|: z = 1 a__isNatList(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__isNatList(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__length(z) -{ 0 }-> a__U11(a__and(a__isNatList(z1), 1 + z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__length(z) -{ 0 }-> 0 :|: z = 1 a__length(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__length(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__zeros :|: z = 3 mark(z) -{ 0 }-> a__length(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNatIList(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__isNat(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (67) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, z0) -> c2(A__LENGTH(mark(z0)), MARK(z0)) by A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1, A__U11_2 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c12_2, c15_2, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2 ---------------------------------------- (69) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: A__U11(tt, nil) -> c2(A__LENGTH(nil), MARK(nil)) A__U11(tt, tt) -> c2(A__LENGTH(tt), MARK(tt)) A__U11(tt, 0) -> c2(A__LENGTH(0), MARK(0)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros), MARK(zeros)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(A__LENGTH(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1, A__U11_2 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c12_2, c15_2, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1, A__U11_2 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c12_2, c15_2, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1 ---------------------------------------- (73) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), isNatIList(z1)), A__ISNAT(z0)) by A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1, A__U11_2 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c15_2, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2 ---------------------------------------- (75) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__ISNATLIST_1, A__LENGTH_1, MARK_1, A__U11_2 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c15_2, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1 ---------------------------------------- (77) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(z0, z1)) -> c15(A__AND(a__isNat(z0), isNatList(z1)), A__ISNAT(z0)) by A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(z0, x1)) -> c15(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(z0, x1)) -> c15(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(z0, x1)) -> c15(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__LENGTH_1, MARK_1, A__U11_2, A__ISNATLIST_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, A__LENGTH_1, MARK_1, A__U11_2, A__ISNATLIST_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c18_3, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(z0, z1)) -> c18(A__U11(a__and(a__isNatList(z1), isNat(z0)), z1), A__AND(a__isNatList(z1), isNat(z0)), A__ISNATLIST(z1)) by A__LENGTH(cons(x0, x1)) -> c18(A__U11(and(a__isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__U11(a__and(tt, isNat(x0)), nil), A__AND(a__isNatList(nil), isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__U11(and(a__isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__U11(a__and(tt, isNat(x0)), nil), A__AND(a__isNatList(nil), isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__U11(and(a__isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__U11(a__and(tt, isNat(x0)), nil), A__AND(a__isNatList(nil), isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c21_2, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(z0, z1)) -> c21(A__U11(mark(z0), z1), MARK(z0)) by MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c21(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(0, x1)) -> c21(A__U11(0, x1), MARK(0)) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c21(A__U11(s(mark(z0)), x1), MARK(s(z0))) MARK(U11(nil, x1)) -> c21(A__U11(nil, x1), MARK(nil)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c21(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(0, x1)) -> c21(A__U11(0, x1), MARK(0)) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c21(A__U11(s(mark(z0)), x1), MARK(s(z0))) MARK(U11(nil, x1)) -> c21(A__U11(nil, x1), MARK(nil)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c21(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(0, x1)) -> c21(A__U11(0, x1), MARK(0)) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c21(A__U11(s(mark(z0)), x1), MARK(s(z0))) MARK(U11(nil, x1)) -> c21(A__U11(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2 ---------------------------------------- (87) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U11(nil, x1)) -> c21(A__U11(nil, x1), MARK(nil)) MARK(U11(0, x1)) -> c21(A__U11(0, x1), MARK(0)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c21(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c21(A__U11(s(mark(z0)), x1), MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1), MARK(zeros)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(cons(z0, z1), x1)) -> c21(A__U11(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1), MARK(tt)) MARK(U11(s(z0), x1)) -> c21(A__U11(s(mark(z0)), x1), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2 ---------------------------------------- (89) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c22_2, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1 ---------------------------------------- (91) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(z0)) -> c22(A__LENGTH(mark(z0)), MARK(z0)) by MARK(length(zeros)) -> c22(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(0)) -> c22(A__LENGTH(0), MARK(0)) MARK(length(tt)) -> c22(A__LENGTH(tt), MARK(tt)) MARK(length(s(z0))) -> c22(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(nil)) -> c22(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(0)) -> c22(A__LENGTH(0), MARK(0)) MARK(length(tt)) -> c22(A__LENGTH(tt), MARK(tt)) MARK(length(s(z0))) -> c22(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(nil)) -> c22(A__LENGTH(nil), MARK(nil)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(0)) -> c22(A__LENGTH(0), MARK(0)) MARK(length(tt)) -> c22(A__LENGTH(tt), MARK(tt)) MARK(length(s(z0))) -> c22(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(nil)) -> c22(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2 ---------------------------------------- (93) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(length(tt)) -> c22(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c22(A__LENGTH(0), MARK(0)) MARK(length(nil)) -> c22(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(A__LENGTH(s(mark(z0))), MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(A__LENGTH(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c23_2, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c23(A__AND(mark(z0), z1), MARK(z0)) by MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c23(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(0, x1)) -> c23(A__AND(0, x1), MARK(0)) MARK(and(tt, x1)) -> c23(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c23(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(nil, x1)) -> c23(A__AND(nil, x1), MARK(nil)) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c23(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(0, x1)) -> c23(A__AND(0, x1), MARK(0)) MARK(and(tt, x1)) -> c23(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c23(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(nil, x1)) -> c23(A__AND(nil, x1), MARK(nil)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c23(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(0, x1)) -> c23(A__AND(0, x1), MARK(0)) MARK(and(tt, x1)) -> c23(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c23(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(nil, x1)) -> c23(A__AND(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2 ---------------------------------------- (99) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(and(nil, x1)) -> c23(A__AND(nil, x1), MARK(nil)) MARK(and(0, x1)) -> c23(A__AND(0, x1), MARK(0)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c23(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c23(A__AND(s(mark(z0)), x1), MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1), MARK(zeros)) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(cons(z0, z1), x1)) -> c23(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1), MARK(tt)) MARK(and(s(z0), x1)) -> c23(A__AND(s(mark(z0)), x1), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, U11(z0, z1)) -> c2(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) by A__U11(tt, U11(x0, z1)) -> c2(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(x0, z1)) -> c2(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(x0, z1)) -> c2(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (105) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (107) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, length(z0)) -> c2(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) by A__U11(tt, length(x0)) -> c2(A__LENGTH(length(mark(x0))), MARK(length(x0))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0)), MARK(length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt)), MARK(length(tt))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil)), MARK(length(nil))) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(x0)) -> c2(A__LENGTH(length(mark(x0))), MARK(length(x0))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0)), MARK(length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt)), MARK(length(tt))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil)), MARK(length(nil))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(x0)) -> c2(A__LENGTH(length(mark(x0))), MARK(length(x0))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0)), MARK(length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt)), MARK(length(tt))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil)), MARK(length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, and(z0, z1)) -> c2(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) by A__U11(tt, and(x0, z1)) -> c2(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(x0, z1)) -> c2(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(x0, z1)) -> c2(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (113) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (115) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, isNat(z0)) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) by A__U11(tt, isNat(0)) -> c2(A__LENGTH(tt), MARK(isNat(0))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(isNat(z0)), MARK(isNat(z0))) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(0)) -> c2(A__LENGTH(tt), MARK(isNat(0))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(isNat(z0)), MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(0)) -> c2(A__LENGTH(tt), MARK(isNat(0))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(z0)) -> c2(A__LENGTH(isNat(z0)), MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (117) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (119) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) by A__U11(tt, isNatList(nil)) -> c2(A__LENGTH(tt), MARK(isNatList(nil))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(nil)) -> c2(A__LENGTH(tt), MARK(isNatList(nil))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(nil)) -> c2(A__LENGTH(tt), MARK(isNatList(nil))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(z0)) -> c2(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) by A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(zeros)) -> c2(A__LENGTH(tt), MARK(isNatIList(zeros))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(zeros)) -> c2(A__LENGTH(tt), MARK(isNatIList(zeros))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(zeros)) -> c2(A__LENGTH(tt), MARK(isNatIList(zeros))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (125) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (127) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, zeros) -> c2(A__LENGTH(a__zeros)) by A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (129) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__U11(tt, zeros) -> c2(A__LENGTH(zeros)) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (131) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) by A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (133) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_2, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1 ---------------------------------------- (135) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) by A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2 ---------------------------------------- (137) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2 ---------------------------------------- (139) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) by A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__AND(isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2 ---------------------------------------- (141) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_2, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2 ---------------------------------------- (143) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) by A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2 ---------------------------------------- (145) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), cons(z0, z1)), A__AND(a__isNatList(cons(z0, z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) by A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(and(a__and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(and(a__and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(and(a__and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2 ---------------------------------------- (149) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_3, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2 ---------------------------------------- (151) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, z0)) -> c18(A__U11(a__and(isNatList(z0), isNat(x0)), z0), A__AND(a__isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) by A__LENGTH(cons(x0, x1)) -> c18(A__U11(and(isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__U11(and(isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__U11(and(isNatList(x1), isNat(x0)), x1), A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3 ---------------------------------------- (153) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3 ---------------------------------------- (155) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) by A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__AND(isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__AND(isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, z0)) -> c18(A__AND(isNatList(z0), isNat(x0)), A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3 ---------------------------------------- (157) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_2, c18_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3 ---------------------------------------- (159) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(x0, nil)) -> c18(A__AND(a__isNatList(nil), isNat(x0))) by A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(isNatList(nil), isNat(x0))) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(isNatList(nil), isNat(x0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) A__LENGTH(cons(x0, nil)) -> c18(A__AND(isNatList(nil), isNat(x0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c18_2, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1 ---------------------------------------- (161) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__LENGTH(cons(x0, nil)) -> c18(A__AND(isNatList(nil), isNat(x0))) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (163) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(U11(z0, z1), x1)) -> c21(A__U11(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) by MARK(U11(U11(x0, z1), x2)) -> c21(A__U11(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2), MARK(U11(nil, x1))) ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(x0, z1), x2)) -> c21(A__U11(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2), MARK(U11(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(x0, z1), x2)) -> c21(A__U11(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2), MARK(U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (165) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (167) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(length(z0), x1)) -> c21(A__U11(a__length(mark(z0)), x1), MARK(length(z0))) by MARK(U11(length(x0), x1)) -> c21(A__U11(length(mark(x0)), x1), MARK(length(x0))) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1), MARK(length(0))) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1), MARK(length(tt))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1), MARK(length(nil))) ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(x0), x1)) -> c21(A__U11(length(mark(x0)), x1), MARK(length(x0))) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1), MARK(length(0))) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1), MARK(length(tt))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1), MARK(length(nil))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(x0), x1)) -> c21(A__U11(length(mark(x0)), x1), MARK(length(x0))) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1), MARK(length(0))) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1), MARK(length(tt))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1), MARK(length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (169) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (171) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(and(z0, z1), x1)) -> c21(A__U11(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) by MARK(U11(and(x0, z1), x2)) -> c21(A__U11(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2), MARK(and(0, x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2), MARK(and(nil, x1))) ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(x0, z1), x2)) -> c21(A__U11(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2), MARK(and(0, x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2), MARK(and(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(x0, z1), x2)) -> c21(A__U11(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2), MARK(and(0, x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2), MARK(and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (173) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (175) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(isNat(z0), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(z0))) by MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(isNat(z0), x1), MARK(isNat(z0))) ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(isNat(z0), x1), MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(A__U11(isNat(z0), x1), MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (177) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (179) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(isNatList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatList(z0))) by MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(isNatList(z0), x1), MARK(isNatList(z0))) ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(isNatList(z0), x1), MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(A__U11(isNatList(z0), x1), MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (181) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_2, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2 ---------------------------------------- (183) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatIList(z0), x1), MARK(isNatIList(z0))) by MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(isNatIList(z0), x1), MARK(isNatIList(z0))) ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(isNatIList(z0), x1), MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(isNatIList(z0), x1), MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (185) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (187) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(zeros, x1)) -> c21(A__U11(a__zeros, x1)) by MARK(U11(zeros, x0)) -> c21(A__U11(cons(0, zeros), x0)) MARK(U11(zeros, x0)) -> c21(A__U11(zeros, x0)) ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) MARK(U11(zeros, x0)) -> c21(A__U11(cons(0, zeros), x0)) MARK(U11(zeros, x0)) -> c21(A__U11(zeros, x0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) MARK(U11(zeros, x0)) -> c21(A__U11(cons(0, zeros), x0)) MARK(U11(zeros, x0)) -> c21(A__U11(zeros, x0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (189) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U11(zeros, x0)) -> c21(A__U11(zeros, x0)) MARK(U11(zeros, x0)) -> c21(A__U11(cons(0, zeros), x0)) ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (191) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (193) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(U11(z0, z1))) -> c22(A__LENGTH(a__U11(mark(z0), z1)), MARK(U11(z0, z1))) by MARK(length(U11(x0, z1))) -> c22(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(x0, z1))) -> c22(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(x0, z1))) -> c22(A__LENGTH(U11(mark(x0), z1)), MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1)), MARK(U11(zeros, x1))) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1)), MARK(U11(0, x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1)), MARK(U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (195) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (197) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(length(z0))) -> c22(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) by MARK(length(length(x0))) -> c22(A__LENGTH(length(mark(x0))), MARK(length(x0))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0)), MARK(length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt)), MARK(length(tt))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil)), MARK(length(nil))) ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(x0))) -> c22(A__LENGTH(length(mark(x0))), MARK(length(x0))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0)), MARK(length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt)), MARK(length(tt))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil)), MARK(length(nil))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(x0))) -> c22(A__LENGTH(length(mark(x0))), MARK(length(x0))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0)), MARK(length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt)), MARK(length(tt))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil)), MARK(length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (199) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (201) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(and(z0, z1))) -> c22(A__LENGTH(a__and(mark(z0), z1)), MARK(and(z0, z1))) by MARK(length(and(x0, z1))) -> c22(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(x0, z1))) -> c22(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(x0, z1))) -> c22(A__LENGTH(and(mark(x0), z1)), MARK(and(x0, z1))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1)), MARK(and(0, x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1)), MARK(and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (203) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (205) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(isNat(z0))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) by MARK(length(isNat(0))) -> c22(A__LENGTH(tt), MARK(isNat(0))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(z0))) -> c22(A__LENGTH(isNat(z0)), MARK(isNat(z0))) ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(0))) -> c22(A__LENGTH(tt), MARK(isNat(0))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(z0))) -> c22(A__LENGTH(isNat(z0)), MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(0))) -> c22(A__LENGTH(tt), MARK(isNat(0))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(z0))) -> c22(A__LENGTH(isNat(z0)), MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (207) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (209) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(isNatList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) by MARK(length(isNatList(nil))) -> c22(A__LENGTH(tt), MARK(isNatList(nil))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(nil))) -> c22(A__LENGTH(tt), MARK(isNatList(nil))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(nil))) -> c22(A__LENGTH(tt), MARK(isNatList(nil))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(z0))) -> c22(A__LENGTH(isNatList(z0)), MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (211) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (213) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) by MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(zeros))) -> c22(A__LENGTH(tt), MARK(isNatIList(zeros))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(zeros))) -> c22(A__LENGTH(tt), MARK(isNatIList(zeros))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(zeros))) -> c22(A__LENGTH(tt), MARK(isNatIList(zeros))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(isNatIList(z0)), MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (215) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (217) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(zeros)) -> c22(A__LENGTH(a__zeros)) by MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(length(zeros)) -> c22(A__LENGTH(zeros)) ---------------------------------------- (218) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(length(zeros)) -> c22(A__LENGTH(zeros)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(length(zeros)) -> c22(A__LENGTH(zeros)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (219) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: MARK(length(zeros)) -> c22(A__LENGTH(zeros)) ---------------------------------------- (220) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (221) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(U11(z0, z1), x1)) -> c23(A__AND(a__U11(mark(z0), z1), x1), MARK(U11(z0, z1))) by MARK(and(U11(x0, z1), x2)) -> c23(A__AND(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2), MARK(U11(nil, x1))) ---------------------------------------- (222) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(x0, z1), x2)) -> c23(A__AND(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2), MARK(U11(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(x0, z1), x2)) -> c23(A__AND(U11(mark(x0), z1), x2), MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2), MARK(U11(zeros, x1))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2), MARK(U11(0, x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2), MARK(U11(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (223) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (224) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (225) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(length(z0), x1)) -> c23(A__AND(a__length(mark(z0)), x1), MARK(length(z0))) by MARK(and(length(x0), x1)) -> c23(A__AND(length(mark(x0)), x1), MARK(length(x0))) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1), MARK(length(0))) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1), MARK(length(tt))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1), MARK(length(nil))) ---------------------------------------- (226) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(x0), x1)) -> c23(A__AND(length(mark(x0)), x1), MARK(length(x0))) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1), MARK(length(0))) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1), MARK(length(tt))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1), MARK(length(nil))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(x0), x1)) -> c23(A__AND(length(mark(x0)), x1), MARK(length(x0))) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1), MARK(length(0))) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1), MARK(length(tt))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1), MARK(length(nil))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (227) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (228) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (229) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(and(z0, z1), x1)) -> c23(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) by MARK(and(and(x0, z1), x2)) -> c23(A__AND(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2), MARK(and(0, x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2), MARK(and(nil, x1))) ---------------------------------------- (230) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(x0, z1), x2)) -> c23(A__AND(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2), MARK(and(0, x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2), MARK(and(nil, x1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(x0, z1), x2)) -> c23(A__AND(and(mark(x0), z1), x2), MARK(and(x0, z1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2), MARK(and(0, x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2), MARK(and(nil, x1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (231) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (232) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (233) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(isNat(z0), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(z0))) by MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(A__AND(isNat(z0), x1), MARK(isNat(z0))) ---------------------------------------- (234) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(A__AND(isNat(z0), x1), MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(A__AND(isNat(z0), x1), MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (235) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (236) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (237) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(isNatList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatList(z0))) by MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(isNatList(z0), x1), MARK(isNatList(z0))) ---------------------------------------- (238) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(isNatList(z0), x1), MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(A__AND(isNatList(z0), x1), MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (239) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (240) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_2, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2 ---------------------------------------- (241) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatIList(z0), x1), MARK(isNatIList(z0))) by MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(isNatIList(z0), x1), MARK(isNatIList(z0))) ---------------------------------------- (242) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(isNatIList(z0), x1), MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(isNatIList(z0), x1), MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (243) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (244) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (245) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(zeros, x1)) -> c23(A__AND(a__zeros, x1)) by MARK(and(zeros, x0)) -> c23(A__AND(cons(0, zeros), x0)) MARK(and(zeros, x0)) -> c23(A__AND(zeros, x0)) ---------------------------------------- (246) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) MARK(and(zeros, x0)) -> c23(A__AND(cons(0, zeros), x0)) MARK(and(zeros, x0)) -> c23(A__AND(zeros, x0)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) MARK(and(zeros, x0)) -> c23(A__AND(cons(0, zeros), x0)) MARK(and(zeros, x0)) -> c23(A__AND(zeros, x0)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (247) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(and(zeros, x0)) -> c23(A__AND(zeros, x0)) MARK(and(zeros, x0)) -> c23(A__AND(cons(0, zeros), x0)) ---------------------------------------- (248) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1)), MARK(and(zeros, x1))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2), MARK(and(zeros, x1))) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (249) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (250) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (251) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, U11(0, x1)) -> c2(A__LENGTH(a__U11(0, x1))) by A__U11(tt, U11(0, z1)) -> c2(A__LENGTH(U11(0, z1))) ---------------------------------------- (252) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) A__U11(tt, U11(0, z1)) -> c2(A__LENGTH(U11(0, z1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) A__U11(tt, U11(0, z1)) -> c2(A__LENGTH(U11(0, z1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (253) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__U11(tt, U11(0, z1)) -> c2(A__LENGTH(U11(0, z1))) ---------------------------------------- (254) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (255) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, U11(nil, x1)) -> c2(A__LENGTH(a__U11(nil, x1))) by A__U11(tt, U11(nil, z1)) -> c2(A__LENGTH(U11(nil, z1))) ---------------------------------------- (256) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) A__U11(tt, U11(nil, z1)) -> c2(A__LENGTH(U11(nil, z1))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) A__U11(tt, U11(nil, z1)) -> c2(A__LENGTH(U11(nil, z1))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (257) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__U11(tt, U11(nil, z1)) -> c2(A__LENGTH(U11(nil, z1))) ---------------------------------------- (258) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (259) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, length(0)) -> c2(A__LENGTH(a__length(0))) by A__U11(tt, length(0)) -> c2(A__LENGTH(length(0))) ---------------------------------------- (260) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) A__U11(tt, length(0)) -> c2(A__LENGTH(length(0))) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) A__U11(tt, length(0)) -> c2(A__LENGTH(length(0))) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2 ---------------------------------------- (261) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__U11(tt, length(0)) -> c2(A__LENGTH(length(0))) ---------------------------------------- (262) Obligation: Complexity Dependency Tuples Problem Rules: a__zeros -> cons(0, zeros) a__zeros -> zeros a__U11(tt, z0) -> s(a__length(mark(z0))) a__U11(z0, z1) -> U11(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNat(0) -> tt a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(s(z0)) -> a__isNat(z0) a__isNat(z0) -> isNat(z0) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), isNatList(z1)) a__isNatList(z0) -> isNatList(z0) a__length(nil) -> 0 a__length(cons(z0, z1)) -> a__U11(a__and(a__isNatList(z1), isNat(z0)), z1) a__length(z0) -> length(z0) mark(zeros) -> a__zeros mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(length(z0)) -> a__length(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(isNat(z0)) -> a__isNat(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(0) -> 0 mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, x1)) -> c18(A__AND(a__isNatList(x1), isNat(x0)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) S tuples: A__AND(tt, z0) -> c4(MARK(z0)) A__ISNAT(length(z0)) -> c7(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNATILIST(z0) -> c10(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c24(A__ISNAT(z0)) MARK(isNatList(z0)) -> c25(A__ISNATLIST(z0)) MARK(isNatIList(z0)) -> c26(A__ISNATILIST(z0)) MARK(cons(z0, z1)) -> c27(MARK(z0)) MARK(s(z0)) -> c30(MARK(z0)) A__U11(tt, cons(z0, z1)) -> c2(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__U11(tt, s(z0)) -> c2(MARK(s(z0))) A__ISNATILIST(cons(0, x1)) -> c12(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c15(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c15(A__ISNAT(z0)) MARK(U11(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(U11(tt, x1)) -> c21(A__U11(tt, x1)) MARK(U11(s(z0), x1)) -> c21(MARK(s(z0))) MARK(length(cons(z0, z1))) -> c22(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(s(z0))) -> c22(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c23(MARK(cons(z0, z1))) MARK(and(tt, x1)) -> c23(A__AND(tt, x1)) MARK(and(s(z0), x1)) -> c23(MARK(s(z0))) A__U11(tt, U11(U11(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) A__U11(tt, U11(length(z0), x1)) -> c2(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) A__U11(tt, U11(and(z0, z1), x1)) -> c2(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) A__U11(tt, U11(isNat(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) A__U11(tt, U11(isNatList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) A__U11(tt, U11(isNatIList(z0), x1)) -> c2(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) A__U11(tt, U11(cons(z0, z1), x1)) -> c2(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) A__U11(tt, U11(tt, x1)) -> c2(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) A__U11(tt, U11(s(z0), x1)) -> c2(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) A__U11(tt, U11(x0, z1)) -> c2(MARK(U11(x0, z1))) A__U11(tt, length(zeros)) -> c2(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) A__U11(tt, length(U11(z0, z1))) -> c2(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) A__U11(tt, length(length(z0))) -> c2(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) A__U11(tt, length(and(z0, z1))) -> c2(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) A__U11(tt, length(isNat(z0))) -> c2(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) A__U11(tt, length(isNatList(z0))) -> c2(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) A__U11(tt, length(isNatIList(z0))) -> c2(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) A__U11(tt, length(cons(z0, z1))) -> c2(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) A__U11(tt, length(s(z0))) -> c2(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) A__U11(tt, length(x0)) -> c2(MARK(length(x0))) A__U11(tt, length(tt)) -> c2(A__LENGTH(a__length(tt))) A__U11(tt, length(nil)) -> c2(A__LENGTH(a__length(nil))) A__U11(tt, and(U11(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) A__U11(tt, and(length(z0), x1)) -> c2(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) A__U11(tt, and(and(z0, z1), x1)) -> c2(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) A__U11(tt, and(isNat(z0), x1)) -> c2(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) A__U11(tt, and(isNatList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) A__U11(tt, and(isNatIList(z0), x1)) -> c2(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) A__U11(tt, and(cons(z0, z1), x1)) -> c2(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) A__U11(tt, and(tt, x1)) -> c2(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) A__U11(tt, and(s(z0), x1)) -> c2(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) A__U11(tt, and(x0, z1)) -> c2(MARK(and(x0, z1))) A__U11(tt, and(0, x1)) -> c2(A__LENGTH(a__and(0, x1))) A__U11(tt, and(nil, x1)) -> c2(A__LENGTH(a__and(nil, x1))) A__U11(tt, isNat(length(z0))) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) A__U11(tt, isNat(s(z0))) -> c2(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) A__U11(tt, isNat(0)) -> c2(MARK(isNat(0))) A__U11(tt, isNat(z0)) -> c2(MARK(isNat(z0))) A__U11(tt, isNatList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) A__U11(tt, isNatList(nil)) -> c2(MARK(isNatList(nil))) A__U11(tt, isNatList(z0)) -> c2(MARK(isNatList(z0))) A__U11(tt, isNatIList(z0)) -> c2(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) A__U11(tt, isNatIList(cons(z0, z1))) -> c2(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) A__U11(tt, isNatIList(zeros)) -> c2(MARK(isNatIList(zeros))) A__U11(tt, isNatIList(z0)) -> c2(MARK(isNatIList(z0))) A__U11(tt, zeros) -> c2(A__LENGTH(cons(0, zeros))) A__ISNATILIST(cons(length(nil), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATILIST(cons(s(0), x1)) -> c12(A__AND(tt, isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c15(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c15(A__ISNAT(length(z0))) A__ISNATLIST(cons(s(0), x1)) -> c15(A__AND(tt, isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c15(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c15(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c15(A__ISNAT(s(z0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__U11(a__and(and(a__isNat(x1), isNatList(x2)), isNat(x0)), cons(x1, x2)), A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(0, x2))) -> c18(A__U11(a__and(a__and(tt, isNatList(x2)), isNat(x0)), cons(0, x2)), A__AND(a__isNatList(cons(0, x2)), isNat(x0)), A__ISNATLIST(cons(0, x2))) A__LENGTH(cons(x0, cons(length(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNatList(z0), isNatList(x2)), isNat(x0)), cons(length(z0), x2)), A__AND(a__isNatList(cons(length(z0), x2)), isNat(x0)), A__ISNATLIST(cons(length(z0), x2))) A__LENGTH(cons(x0, cons(s(z0), x2))) -> c18(A__U11(a__and(a__and(a__isNat(z0), isNatList(x2)), isNat(x0)), cons(s(z0), x2)), A__AND(a__isNatList(cons(s(z0), x2)), isNat(x0)), A__ISNATLIST(cons(s(z0), x2))) A__LENGTH(cons(x0, cons(z0, x2))) -> c18(A__U11(a__and(a__and(isNat(z0), isNatList(x2)), isNat(x0)), cons(z0, x2)), A__AND(a__isNatList(cons(z0, x2)), isNat(x0)), A__ISNATLIST(cons(z0, x2))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0))) A__LENGTH(cons(x0, cons(x1, x2))) -> c18(A__AND(a__isNatList(cons(x1, x2)), isNat(x0)), A__ISNATLIST(cons(x1, x2))) A__LENGTH(cons(x0, cons(z0, z1))) -> c18(A__AND(a__and(a__isNat(z0), isNatList(z1)), isNat(x0)), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c18(A__AND(tt, isNat(x0))) A__LENGTH(cons(x0, z0)) -> c18(A__ISNATLIST(z0)) MARK(U11(U11(U11(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(U11(U11(length(z0), x1), x2)) -> c21(A__U11(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(U11(U11(and(z0, z1), x1), x2)) -> c21(A__U11(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(U11(U11(isNat(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(U11(U11(isNatList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(U11(U11(isNatIList(z0), x1), x2)) -> c21(A__U11(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(U11(U11(cons(z0, z1), x1), x2)) -> c21(A__U11(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(U11(U11(tt, x1), x2)) -> c21(A__U11(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(U11(U11(s(z0), x1), x2)) -> c21(A__U11(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(U11(U11(x0, z1), x2)) -> c21(MARK(U11(x0, z1))) MARK(U11(U11(0, x1), x2)) -> c21(A__U11(a__U11(0, x1), x2)) MARK(U11(U11(nil, x1), x2)) -> c21(A__U11(a__U11(nil, x1), x2)) MARK(U11(length(zeros), x1)) -> c21(A__U11(a__length(a__zeros), x1), MARK(length(zeros))) MARK(U11(length(U11(z0, z1)), x1)) -> c21(A__U11(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(U11(length(length(z0)), x1)) -> c21(A__U11(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(U11(length(and(z0, z1)), x1)) -> c21(A__U11(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(U11(length(isNat(z0)), x1)) -> c21(A__U11(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(U11(length(isNatList(z0)), x1)) -> c21(A__U11(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(U11(length(isNatIList(z0)), x1)) -> c21(A__U11(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(U11(length(cons(z0, z1)), x1)) -> c21(A__U11(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(U11(length(s(z0)), x1)) -> c21(A__U11(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(U11(length(x0), x1)) -> c21(MARK(length(x0))) MARK(U11(length(0), x1)) -> c21(A__U11(a__length(0), x1)) MARK(U11(length(tt), x1)) -> c21(A__U11(a__length(tt), x1)) MARK(U11(length(nil), x1)) -> c21(A__U11(a__length(nil), x1)) MARK(U11(and(U11(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(U11(and(length(z0), x1), x2)) -> c21(A__U11(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(U11(and(and(z0, z1), x1), x2)) -> c21(A__U11(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(U11(and(isNat(z0), x1), x2)) -> c21(A__U11(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(U11(and(isNatList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(U11(and(isNatIList(z0), x1), x2)) -> c21(A__U11(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(U11(and(cons(z0, z1), x1), x2)) -> c21(A__U11(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(U11(and(tt, x1), x2)) -> c21(A__U11(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(U11(and(s(z0), x1), x2)) -> c21(A__U11(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(U11(and(x0, z1), x2)) -> c21(MARK(and(x0, z1))) MARK(U11(and(0, x1), x2)) -> c21(A__U11(a__and(0, x1), x2)) MARK(U11(and(nil, x1), x2)) -> c21(A__U11(a__and(nil, x1), x2)) MARK(U11(isNat(0), x1)) -> c21(A__U11(tt, x1), MARK(isNat(0))) MARK(U11(isNat(length(z0)), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(U11(isNat(s(z0)), x1)) -> c21(A__U11(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(U11(isNat(z0), x1)) -> c21(MARK(isNat(z0))) MARK(U11(isNatList(nil), x1)) -> c21(A__U11(tt, x1), MARK(isNatList(nil))) MARK(U11(isNatList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(U11(isNatList(z0), x1)) -> c21(MARK(isNatList(z0))) MARK(U11(isNatIList(z0), x1)) -> c21(A__U11(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(U11(isNatIList(zeros), x1)) -> c21(A__U11(tt, x1), MARK(isNatIList(zeros))) MARK(U11(isNatIList(cons(z0, z1)), x1)) -> c21(A__U11(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(U11(isNatIList(z0), x1)) -> c21(MARK(isNatIList(z0))) A__U11(tt, U11(zeros, x1)) -> c2(A__LENGTH(a__U11(a__zeros, x1))) MARK(U11(U11(zeros, x1), x2)) -> c21(A__U11(a__U11(a__zeros, x1), x2)) MARK(length(U11(U11(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__U11(mark(z0), z1), x1)), MARK(U11(U11(z0, z1), x1))) MARK(length(U11(length(z0), x1))) -> c22(A__LENGTH(a__U11(a__length(mark(z0)), x1)), MARK(U11(length(z0), x1))) MARK(length(U11(and(z0, z1), x1))) -> c22(A__LENGTH(a__U11(a__and(mark(z0), z1), x1)), MARK(U11(and(z0, z1), x1))) MARK(length(U11(isNat(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNat(z0), x1)), MARK(U11(isNat(z0), x1))) MARK(length(U11(isNatList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatList(z0), x1)), MARK(U11(isNatList(z0), x1))) MARK(length(U11(isNatIList(z0), x1))) -> c22(A__LENGTH(a__U11(a__isNatIList(z0), x1)), MARK(U11(isNatIList(z0), x1))) MARK(length(U11(cons(z0, z1), x1))) -> c22(A__LENGTH(a__U11(cons(mark(z0), z1), x1)), MARK(U11(cons(z0, z1), x1))) MARK(length(U11(tt, x1))) -> c22(A__LENGTH(a__U11(tt, x1)), MARK(U11(tt, x1))) MARK(length(U11(s(z0), x1))) -> c22(A__LENGTH(a__U11(s(mark(z0)), x1)), MARK(U11(s(z0), x1))) MARK(length(U11(x0, z1))) -> c22(MARK(U11(x0, z1))) MARK(length(U11(zeros, x1))) -> c22(A__LENGTH(a__U11(a__zeros, x1))) MARK(length(U11(0, x1))) -> c22(A__LENGTH(a__U11(0, x1))) MARK(length(U11(nil, x1))) -> c22(A__LENGTH(a__U11(nil, x1))) MARK(length(length(zeros))) -> c22(A__LENGTH(a__length(a__zeros)), MARK(length(zeros))) MARK(length(length(U11(z0, z1)))) -> c22(A__LENGTH(a__length(a__U11(mark(z0), z1))), MARK(length(U11(z0, z1)))) MARK(length(length(length(z0)))) -> c22(A__LENGTH(a__length(a__length(mark(z0)))), MARK(length(length(z0)))) MARK(length(length(and(z0, z1)))) -> c22(A__LENGTH(a__length(a__and(mark(z0), z1))), MARK(length(and(z0, z1)))) MARK(length(length(isNat(z0)))) -> c22(A__LENGTH(a__length(a__isNat(z0))), MARK(length(isNat(z0)))) MARK(length(length(isNatList(z0)))) -> c22(A__LENGTH(a__length(a__isNatList(z0))), MARK(length(isNatList(z0)))) MARK(length(length(isNatIList(z0)))) -> c22(A__LENGTH(a__length(a__isNatIList(z0))), MARK(length(isNatIList(z0)))) MARK(length(length(cons(z0, z1)))) -> c22(A__LENGTH(a__length(cons(mark(z0), z1))), MARK(length(cons(z0, z1)))) MARK(length(length(s(z0)))) -> c22(A__LENGTH(a__length(s(mark(z0)))), MARK(length(s(z0)))) MARK(length(length(x0))) -> c22(MARK(length(x0))) MARK(length(length(0))) -> c22(A__LENGTH(a__length(0))) MARK(length(length(tt))) -> c22(A__LENGTH(a__length(tt))) MARK(length(length(nil))) -> c22(A__LENGTH(a__length(nil))) MARK(length(and(U11(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__U11(mark(z0), z1), x1)), MARK(and(U11(z0, z1), x1))) MARK(length(and(length(z0), x1))) -> c22(A__LENGTH(a__and(a__length(mark(z0)), x1)), MARK(and(length(z0), x1))) MARK(length(and(and(z0, z1), x1))) -> c22(A__LENGTH(a__and(a__and(mark(z0), z1), x1)), MARK(and(and(z0, z1), x1))) MARK(length(and(isNat(z0), x1))) -> c22(A__LENGTH(a__and(a__isNat(z0), x1)), MARK(and(isNat(z0), x1))) MARK(length(and(isNatList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatList(z0), x1)), MARK(and(isNatList(z0), x1))) MARK(length(and(isNatIList(z0), x1))) -> c22(A__LENGTH(a__and(a__isNatIList(z0), x1)), MARK(and(isNatIList(z0), x1))) MARK(length(and(cons(z0, z1), x1))) -> c22(A__LENGTH(a__and(cons(mark(z0), z1), x1)), MARK(and(cons(z0, z1), x1))) MARK(length(and(tt, x1))) -> c22(A__LENGTH(a__and(tt, x1)), MARK(and(tt, x1))) MARK(length(and(s(z0), x1))) -> c22(A__LENGTH(a__and(s(mark(z0)), x1)), MARK(and(s(z0), x1))) MARK(length(and(x0, z1))) -> c22(MARK(and(x0, z1))) MARK(length(and(0, x1))) -> c22(A__LENGTH(a__and(0, x1))) MARK(length(and(nil, x1))) -> c22(A__LENGTH(a__and(nil, x1))) MARK(length(isNat(length(z0)))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNat(length(z0)))) MARK(length(isNat(s(z0)))) -> c22(A__LENGTH(a__isNat(z0)), MARK(isNat(s(z0)))) MARK(length(isNat(0))) -> c22(MARK(isNat(0))) MARK(length(isNat(z0))) -> c22(MARK(isNat(z0))) MARK(length(isNatList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatList(z1))), MARK(isNatList(cons(z0, z1)))) MARK(length(isNatList(nil))) -> c22(MARK(isNatList(nil))) MARK(length(isNatList(z0))) -> c22(MARK(isNatList(z0))) MARK(length(isNatIList(z0))) -> c22(A__LENGTH(a__isNatList(z0)), MARK(isNatIList(z0))) MARK(length(isNatIList(cons(z0, z1)))) -> c22(A__LENGTH(a__and(a__isNat(z0), isNatIList(z1))), MARK(isNatIList(cons(z0, z1)))) MARK(length(isNatIList(zeros))) -> c22(MARK(isNatIList(zeros))) MARK(length(isNatIList(z0))) -> c22(MARK(isNatIList(z0))) MARK(length(zeros)) -> c22(A__LENGTH(cons(0, zeros))) MARK(and(U11(U11(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__U11(mark(z0), z1), x1), x2), MARK(U11(U11(z0, z1), x1))) MARK(and(U11(length(z0), x1), x2)) -> c23(A__AND(a__U11(a__length(mark(z0)), x1), x2), MARK(U11(length(z0), x1))) MARK(and(U11(and(z0, z1), x1), x2)) -> c23(A__AND(a__U11(a__and(mark(z0), z1), x1), x2), MARK(U11(and(z0, z1), x1))) MARK(and(U11(isNat(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNat(z0), x1), x2), MARK(U11(isNat(z0), x1))) MARK(and(U11(isNatList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatList(z0), x1), x2), MARK(U11(isNatList(z0), x1))) MARK(and(U11(isNatIList(z0), x1), x2)) -> c23(A__AND(a__U11(a__isNatIList(z0), x1), x2), MARK(U11(isNatIList(z0), x1))) MARK(and(U11(cons(z0, z1), x1), x2)) -> c23(A__AND(a__U11(cons(mark(z0), z1), x1), x2), MARK(U11(cons(z0, z1), x1))) MARK(and(U11(tt, x1), x2)) -> c23(A__AND(a__U11(tt, x1), x2), MARK(U11(tt, x1))) MARK(and(U11(s(z0), x1), x2)) -> c23(A__AND(a__U11(s(mark(z0)), x1), x2), MARK(U11(s(z0), x1))) MARK(and(U11(x0, z1), x2)) -> c23(MARK(U11(x0, z1))) MARK(and(U11(zeros, x1), x2)) -> c23(A__AND(a__U11(a__zeros, x1), x2)) MARK(and(U11(0, x1), x2)) -> c23(A__AND(a__U11(0, x1), x2)) MARK(and(U11(nil, x1), x2)) -> c23(A__AND(a__U11(nil, x1), x2)) MARK(and(length(zeros), x1)) -> c23(A__AND(a__length(a__zeros), x1), MARK(length(zeros))) MARK(and(length(U11(z0, z1)), x1)) -> c23(A__AND(a__length(a__U11(mark(z0), z1)), x1), MARK(length(U11(z0, z1)))) MARK(and(length(length(z0)), x1)) -> c23(A__AND(a__length(a__length(mark(z0))), x1), MARK(length(length(z0)))) MARK(and(length(and(z0, z1)), x1)) -> c23(A__AND(a__length(a__and(mark(z0), z1)), x1), MARK(length(and(z0, z1)))) MARK(and(length(isNat(z0)), x1)) -> c23(A__AND(a__length(a__isNat(z0)), x1), MARK(length(isNat(z0)))) MARK(and(length(isNatList(z0)), x1)) -> c23(A__AND(a__length(a__isNatList(z0)), x1), MARK(length(isNatList(z0)))) MARK(and(length(isNatIList(z0)), x1)) -> c23(A__AND(a__length(a__isNatIList(z0)), x1), MARK(length(isNatIList(z0)))) MARK(and(length(cons(z0, z1)), x1)) -> c23(A__AND(a__length(cons(mark(z0), z1)), x1), MARK(length(cons(z0, z1)))) MARK(and(length(s(z0)), x1)) -> c23(A__AND(a__length(s(mark(z0))), x1), MARK(length(s(z0)))) MARK(and(length(x0), x1)) -> c23(MARK(length(x0))) MARK(and(length(0), x1)) -> c23(A__AND(a__length(0), x1)) MARK(and(length(tt), x1)) -> c23(A__AND(a__length(tt), x1)) MARK(and(length(nil), x1)) -> c23(A__AND(a__length(nil), x1)) MARK(and(and(U11(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__U11(mark(z0), z1), x1), x2), MARK(and(U11(z0, z1), x1))) MARK(and(and(length(z0), x1), x2)) -> c23(A__AND(a__and(a__length(mark(z0)), x1), x2), MARK(and(length(z0), x1))) MARK(and(and(and(z0, z1), x1), x2)) -> c23(A__AND(a__and(a__and(mark(z0), z1), x1), x2), MARK(and(and(z0, z1), x1))) MARK(and(and(isNat(z0), x1), x2)) -> c23(A__AND(a__and(a__isNat(z0), x1), x2), MARK(and(isNat(z0), x1))) MARK(and(and(isNatList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatList(z0), x1), x2), MARK(and(isNatList(z0), x1))) MARK(and(and(isNatIList(z0), x1), x2)) -> c23(A__AND(a__and(a__isNatIList(z0), x1), x2), MARK(and(isNatIList(z0), x1))) MARK(and(and(cons(z0, z1), x1), x2)) -> c23(A__AND(a__and(cons(mark(z0), z1), x1), x2), MARK(and(cons(z0, z1), x1))) MARK(and(and(tt, x1), x2)) -> c23(A__AND(a__and(tt, x1), x2), MARK(and(tt, x1))) MARK(and(and(s(z0), x1), x2)) -> c23(A__AND(a__and(s(mark(z0)), x1), x2), MARK(and(s(z0), x1))) MARK(and(and(x0, z1), x2)) -> c23(MARK(and(x0, z1))) MARK(and(and(0, x1), x2)) -> c23(A__AND(a__and(0, x1), x2)) MARK(and(and(nil, x1), x2)) -> c23(A__AND(a__and(nil, x1), x2)) MARK(and(isNat(0), x1)) -> c23(A__AND(tt, x1), MARK(isNat(0))) MARK(and(isNat(length(z0)), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNat(length(z0)))) MARK(and(isNat(s(z0)), x1)) -> c23(A__AND(a__isNat(z0), x1), MARK(isNat(s(z0)))) MARK(and(isNat(z0), x1)) -> c23(MARK(isNat(z0))) MARK(and(isNatList(nil), x1)) -> c23(A__AND(tt, x1), MARK(isNatList(nil))) MARK(and(isNatList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatList(z1)), x1), MARK(isNatList(cons(z0, z1)))) MARK(and(isNatList(z0), x1)) -> c23(MARK(isNatList(z0))) MARK(and(isNatIList(z0), x1)) -> c23(A__AND(a__isNatList(z0), x1), MARK(isNatIList(z0))) MARK(and(isNatIList(zeros), x1)) -> c23(A__AND(tt, x1), MARK(isNatIList(zeros))) MARK(and(isNatIList(cons(z0, z1)), x1)) -> c23(A__AND(a__and(a__isNat(z0), isNatIList(z1)), x1), MARK(isNatIList(cons(z0, z1)))) MARK(and(isNatIList(z0), x1)) -> c23(MARK(isNatIList(z0))) A__U11(tt, and(zeros, x1)) -> c2(A__LENGTH(a__and(a__zeros, x1))) MARK(U11(and(zeros, x1), x2)) -> c21(A__U11(a__and(a__zeros, x1), x2)) MARK(length(and(zeros, x1))) -> c22(A__LENGTH(a__and(a__zeros, x1))) MARK(and(and(zeros, x1), x2)) -> c23(A__AND(a__and(a__zeros, x1), x2)) K tuples:none Defined Rule Symbols: a__zeros, a__U11_2, a__and_2, a__isNat_1, a__isNatIList_1, a__isNatList_1, a__length_1, mark_1 Defined Pair Symbols: A__AND_2, A__ISNAT_1, A__ISNATILIST_1, MARK_1, A__U11_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c4_1, c7_1, c8_1, c10_1, c24_1, c25_1, c26_1, c27_1, c30_1, c2_2, c2_1, c12_1, c15_1, c21_1, c22_2, c22_1, c23_1, c12_2, c15_2, c18_3, c18_1, c18_2, c21_2, c23_2