WORST_CASE(Omega(n^1),O(n^2)) proof of /export/starexec/sandbox/benchmark/theBenchmark.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 mhark 20210624 unpublished The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 1376 ms] (2) CpxRelTRS (3) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxWeightedTrs (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxTypedWeightedTrs (7) CompletionProof [UPPER BOUND(ID), 0 ms] (8) CpxTypedWeightedCompleteTrs (9) NarrowingProof [BOTH BOUNDS(ID, ID), 1687 ms] (10) CpxTypedWeightedCompleteTrs (11) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (12) CpxRNTS (13) InliningProof [UPPER BOUND(ID), 2904 ms] (14) CpxRNTS (15) SimplificationProof [BOTH BOUNDS(ID, ID), 31 ms] (16) CpxRNTS (17) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (20) CpxRNTS (21) IntTrsBoundProof [UPPER BOUND(ID), 268 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 98 ms] (24) CpxRNTS (25) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (26) CpxRNTS (27) IntTrsBoundProof [UPPER BOUND(ID), 265 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 36 ms] (30) CpxRNTS (31) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (32) CpxRNTS (33) IntTrsBoundProof [UPPER BOUND(ID), 269 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 55 ms] (36) CpxRNTS (37) ResultPropagationProof [UPPER BOUND(ID), 3 ms] (38) CpxRNTS (39) IntTrsBoundProof [UPPER BOUND(ID), 183 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 33 ms] (42) CpxRNTS (43) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (44) CpxRNTS (45) IntTrsBoundProof [UPPER BOUND(ID), 292 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 24 ms] (48) CpxRNTS (49) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (50) CpxRNTS (51) IntTrsBoundProof [UPPER BOUND(ID), 174 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 75 ms] (54) CpxRNTS (55) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (56) CpxRNTS (57) IntTrsBoundProof [UPPER BOUND(ID), 989 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 86 ms] (60) CpxRNTS (61) ResultPropagationProof [UPPER BOUND(ID), 3 ms] (62) CpxRNTS (63) IntTrsBoundProof [UPPER BOUND(ID), 211 ms] (64) CpxRNTS (65) IntTrsBoundProof [UPPER BOUND(ID), 75 ms] (66) CpxRNTS (67) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (68) CpxRNTS (69) IntTrsBoundProof [UPPER BOUND(ID), 188 ms] (70) CpxRNTS (71) IntTrsBoundProof [UPPER BOUND(ID), 32 ms] (72) CpxRNTS (73) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (74) CpxRNTS (75) IntTrsBoundProof [UPPER BOUND(ID), 1078 ms] (76) CpxRNTS (77) IntTrsBoundProof [UPPER BOUND(ID), 156 ms] (78) CpxRNTS (79) ResultPropagationProof [UPPER BOUND(ID), 1 ms] (80) CpxRNTS (81) IntTrsBoundProof [UPPER BOUND(ID), 211 ms] (82) CpxRNTS (83) IntTrsBoundProof [UPPER BOUND(ID), 54 ms] (84) CpxRNTS (85) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (86) CpxRNTS (87) IntTrsBoundProof [UPPER BOUND(ID), 170 ms] (88) CpxRNTS (89) IntTrsBoundProof [UPPER BOUND(ID), 83 ms] (90) CpxRNTS (91) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (92) CpxRNTS (93) IntTrsBoundProof [UPPER BOUND(ID), 705 ms] (94) CpxRNTS (95) IntTrsBoundProof [UPPER BOUND(ID), 247 ms] (96) CpxRNTS (97) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (98) CpxRNTS (99) IntTrsBoundProof [UPPER BOUND(ID), 402 ms] (100) CpxRNTS (101) IntTrsBoundProof [UPPER BOUND(ID), 69 ms] (102) CpxRNTS (103) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (104) CpxRNTS (105) IntTrsBoundProof [UPPER BOUND(ID), 1222 ms] (106) CpxRNTS (107) IntTrsBoundProof [UPPER BOUND(ID), 176 ms] (108) CpxRNTS (109) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (110) CpxRNTS (111) IntTrsBoundProof [UPPER BOUND(ID), 1381 ms] (112) CpxRNTS (113) IntTrsBoundProof [UPPER BOUND(ID), 548 ms] (114) CpxRNTS (115) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (116) CpxRNTS (117) IntTrsBoundProof [UPPER BOUND(ID), 1471 ms] (118) CpxRNTS (119) IntTrsBoundProof [UPPER BOUND(ID), 308 ms] (120) CpxRNTS (121) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (122) CpxRNTS (123) IntTrsBoundProof [UPPER BOUND(ID), 148 ms] (124) CpxRNTS (125) IntTrsBoundProof [UPPER BOUND(ID), 22 ms] (126) CpxRNTS (127) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (128) CpxRNTS (129) IntTrsBoundProof [UPPER BOUND(ID), 98 ms] (130) CpxRNTS (131) IntTrsBoundProof [UPPER BOUND(ID), 32 ms] (132) CpxRNTS (133) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (134) CpxRNTS (135) IntTrsBoundProof [UPPER BOUND(ID), 1554 ms] (136) CpxRNTS (137) IntTrsBoundProof [UPPER BOUND(ID), 256 ms] (138) CpxRNTS (139) ResultPropagationProof [UPPER BOUND(ID), 4 ms] (140) CpxRNTS (141) IntTrsBoundProof [UPPER BOUND(ID), 159 ms] (142) CpxRNTS (143) IntTrsBoundProof [UPPER BOUND(ID), 42 ms] (144) CpxRNTS (145) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (146) CpxRNTS (147) IntTrsBoundProof [UPPER BOUND(ID), 5627 ms] (148) CpxRNTS (149) IntTrsBoundProof [UPPER BOUND(ID), 821 ms] (150) CpxRNTS (151) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (152) CpxRNTS (153) IntTrsBoundProof [UPPER BOUND(ID), 241 ms] (154) CpxRNTS (155) IntTrsBoundProof [UPPER BOUND(ID), 22 ms] (156) CpxRNTS (157) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (158) CpxRNTS (159) IntTrsBoundProof [UPPER BOUND(ID), 946 ms] (160) CpxRNTS (161) IntTrsBoundProof [UPPER BOUND(ID), 455 ms] (162) CpxRNTS (163) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (164) CpxRNTS (165) IntTrsBoundProof [UPPER BOUND(ID), 187 ms] (166) CpxRNTS (167) IntTrsBoundProof [UPPER BOUND(ID), 12 ms] (168) CpxRNTS (169) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (170) CpxRNTS (171) IntTrsBoundProof [UPPER BOUND(ID), 1311 ms] (172) CpxRNTS (173) IntTrsBoundProof [UPPER BOUND(ID), 146 ms] (174) CpxRNTS (175) FinalProof [FINISHED, 0 ms] (176) BOUNDS(1, n^2) (177) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (178) TRS for Loop Detection (179) DecreasingLoopProof [LOWER BOUND(ID), 122 ms] (180) BEST (181) proven lower bound (182) LowerBoundPropagationProof [FINISHED, 0 ms] (183) BOUNDS(n^1, INF) (184) TRS for Loop Detection ---------------------------------------- (0) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) AND(z0, z1) -> c42(#AND(z0, z1)) INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) INSERT#1(nil, z0) -> c45 INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) INSERT#2(#true, z0, z1, z2) -> c47 ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) ISORTLIST#1(nil) -> c50 LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) LEQ#1(nil, z0) -> c53 LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) LEQ#2(nil, z0, z1) -> c57 OR(z0, z1) -> c58(#OR(z0, z1)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #CKLT(#EQ) -> c4 #CKLT(#GT) -> c5 #CKLT(#LT) -> c6 #COMPARE(#0, #0) -> c7 #COMPARE(#0, #neg(z0)) -> c8 #COMPARE(#0, #pos(z0)) -> c9 #COMPARE(#0, #s(z0)) -> c10 #COMPARE(#neg(z0), #0) -> c11 #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) #COMPARE(#neg(z0), #pos(z1)) -> c13 #COMPARE(#pos(z0), #0) -> c14 #COMPARE(#pos(z0), #neg(z1)) -> c15 #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) #COMPARE(#s(z0), #0) -> c17 #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) #EQ'(#0, #0) -> c19 #EQ'(#0, #neg(z0)) -> c20 #EQ'(#0, #pos(z0)) -> c21 #EQ'(#0, #s(z0)) -> c22 #EQ'(#neg(z0), #0) -> c23 #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) #EQ'(#neg(z0), #pos(z1)) -> c25 #EQ'(#pos(z0), #0) -> c26 #EQ'(#pos(z0), #neg(z1)) -> c27 #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) #EQ'(#s(z0), #0) -> c29 #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) #EQ'(::(z0, z1), nil) -> c33 #EQ'(nil, ::(z0, z1)) -> c34 #EQ'(nil, nil) -> c35 #OR(#false, #false) -> c36 #OR(#false, #true) -> c37 #OR(#true, #false) -> c38 #OR(#true, #true) -> c39 #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #cklt(#EQ) -> #false #cklt(#GT) -> #false #cklt(#LT) -> #true #compare(#0, #0) -> #EQ #compare(#0, #neg(z0)) -> #GT #compare(#0, #pos(z0)) -> #LT #compare(#0, #s(z0)) -> #LT #compare(#neg(z0), #0) -> #LT #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) #compare(#neg(z0), #pos(z1)) -> #LT #compare(#pos(z0), #0) -> #GT #compare(#pos(z0), #neg(z1)) -> #GT #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) #compare(#s(z0), #0) -> #GT #compare(#s(z0), #s(z1)) -> #compare(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), nil) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, nil) -> #true #or(#false, #false) -> #false #or(#false, #true) -> #true #or(#true, #false) -> #true #or(#true, #true) -> #true #equal(z0, z1) -> #eq(z0, z1) #less(z0, z1) -> #cklt(#compare(z0, z1)) and(z0, z1) -> #and(z0, z1) insert(z0, z1) -> insert#1(z1, z0) insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) insert#1(nil, z0) -> ::(z0, nil) insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) isortlist(z0) -> isortlist#1(z0) isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) isortlist#1(nil) -> nil leq(z0, z1) -> leq#1(z0, z1) leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) leq#1(nil, z0) -> #true leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) leq#2(nil, z0, z1) -> #false or(z0, z1) -> #or(z0, z1) Rewrite Strategy: INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) AND(z0, z1) -> c42(#AND(z0, z1)) INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) INSERT#1(nil, z0) -> c45 INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) INSERT#2(#true, z0, z1, z2) -> c47 ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) ISORTLIST#1(nil) -> c50 LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) LEQ#1(nil, z0) -> c53 LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) LEQ#2(nil, z0, z1) -> c57 OR(z0, z1) -> c58(#OR(z0, z1)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #CKLT(#EQ) -> c4 #CKLT(#GT) -> c5 #CKLT(#LT) -> c6 #COMPARE(#0, #0) -> c7 #COMPARE(#0, #neg(z0)) -> c8 #COMPARE(#0, #pos(z0)) -> c9 #COMPARE(#0, #s(z0)) -> c10 #COMPARE(#neg(z0), #0) -> c11 #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) #COMPARE(#neg(z0), #pos(z1)) -> c13 #COMPARE(#pos(z0), #0) -> c14 #COMPARE(#pos(z0), #neg(z1)) -> c15 #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) #COMPARE(#s(z0), #0) -> c17 #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) #EQ'(#0, #0) -> c19 #EQ'(#0, #neg(z0)) -> c20 #EQ'(#0, #pos(z0)) -> c21 #EQ'(#0, #s(z0)) -> c22 #EQ'(#neg(z0), #0) -> c23 #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) #EQ'(#neg(z0), #pos(z1)) -> c25 #EQ'(#pos(z0), #0) -> c26 #EQ'(#pos(z0), #neg(z1)) -> c27 #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) #EQ'(#s(z0), #0) -> c29 #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) #EQ'(::(z0, z1), nil) -> c33 #EQ'(nil, ::(z0, z1)) -> c34 #EQ'(nil, nil) -> c35 #OR(#false, #false) -> c36 #OR(#false, #true) -> c37 #OR(#true, #false) -> c38 #OR(#true, #true) -> c39 #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #cklt(#EQ) -> #false #cklt(#GT) -> #false #cklt(#LT) -> #true #compare(#0, #0) -> #EQ #compare(#0, #neg(z0)) -> #GT #compare(#0, #pos(z0)) -> #LT #compare(#0, #s(z0)) -> #LT #compare(#neg(z0), #0) -> #LT #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) #compare(#neg(z0), #pos(z1)) -> #LT #compare(#pos(z0), #0) -> #GT #compare(#pos(z0), #neg(z1)) -> #GT #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) #compare(#s(z0), #0) -> #GT #compare(#s(z0), #s(z1)) -> #compare(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), nil) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, nil) -> #true #or(#false, #false) -> #false #or(#false, #true) -> #true #or(#true, #false) -> #true #or(#true, #true) -> #true #equal(z0, z1) -> #eq(z0, z1) #less(z0, z1) -> #cklt(#compare(z0, z1)) and(z0, z1) -> #and(z0, z1) insert(z0, z1) -> insert#1(z1, z0) insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) insert#1(nil, z0) -> ::(z0, nil) insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) isortlist(z0) -> isortlist#1(z0) isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) isortlist#1(nil) -> nil leq(z0, z1) -> leq#1(z0, z1) leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) leq#1(nil, z0) -> #true leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) leq#2(nil, z0, z1) -> #false or(z0, z1) -> #or(z0, z1) Rewrite Strategy: INNERMOST ---------------------------------------- (3) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) [1] #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) [1] AND(z0, z1) -> c42(#AND(z0, z1)) [1] INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) [1] INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) [1] INSERT#1(nil, z0) -> c45 [1] INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) [1] INSERT#2(#true, z0, z1, z2) -> c47 [1] ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) [1] ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) [1] ISORTLIST#1(nil) -> c50 [1] LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) [1] LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) [1] LEQ#1(nil, z0) -> c53 [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) [1] LEQ#2(nil, z0, z1) -> c57 [1] OR(z0, z1) -> c58(#OR(z0, z1)) [1] #AND(#false, #false) -> c [0] #AND(#false, #true) -> c1 [0] #AND(#true, #false) -> c2 [0] #AND(#true, #true) -> c3 [0] #CKLT(#EQ) -> c4 [0] #CKLT(#GT) -> c5 [0] #CKLT(#LT) -> c6 [0] #COMPARE(#0, #0) -> c7 [0] #COMPARE(#0, #neg(z0)) -> c8 [0] #COMPARE(#0, #pos(z0)) -> c9 [0] #COMPARE(#0, #s(z0)) -> c10 [0] #COMPARE(#neg(z0), #0) -> c11 [0] #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) [0] #COMPARE(#neg(z0), #pos(z1)) -> c13 [0] #COMPARE(#pos(z0), #0) -> c14 [0] #COMPARE(#pos(z0), #neg(z1)) -> c15 [0] #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) [0] #COMPARE(#s(z0), #0) -> c17 [0] #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) [0] #EQ'(#0, #0) -> c19 [0] #EQ'(#0, #neg(z0)) -> c20 [0] #EQ'(#0, #pos(z0)) -> c21 [0] #EQ'(#0, #s(z0)) -> c22 [0] #EQ'(#neg(z0), #0) -> c23 [0] #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) [0] #EQ'(#neg(z0), #pos(z1)) -> c25 [0] #EQ'(#pos(z0), #0) -> c26 [0] #EQ'(#pos(z0), #neg(z1)) -> c27 [0] #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) [0] #EQ'(#s(z0), #0) -> c29 [0] #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) [0] #EQ'(::(z0, z1), nil) -> c33 [0] #EQ'(nil, ::(z0, z1)) -> c34 [0] #EQ'(nil, nil) -> c35 [0] #OR(#false, #false) -> c36 [0] #OR(#false, #true) -> c37 [0] #OR(#true, #false) -> c38 [0] #OR(#true, #true) -> c39 [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #cklt(#EQ) -> #false [0] #cklt(#GT) -> #false [0] #cklt(#LT) -> #true [0] #compare(#0, #0) -> #EQ [0] #compare(#0, #neg(z0)) -> #GT [0] #compare(#0, #pos(z0)) -> #LT [0] #compare(#0, #s(z0)) -> #LT [0] #compare(#neg(z0), #0) -> #LT [0] #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) [0] #compare(#neg(z0), #pos(z1)) -> #LT [0] #compare(#pos(z0), #0) -> #GT [0] #compare(#pos(z0), #neg(z1)) -> #GT [0] #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) [0] #compare(#s(z0), #0) -> #GT [0] #compare(#s(z0), #s(z1)) -> #compare(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), nil) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, nil) -> #true [0] #or(#false, #false) -> #false [0] #or(#false, #true) -> #true [0] #or(#true, #false) -> #true [0] #or(#true, #true) -> #true [0] #equal(z0, z1) -> #eq(z0, z1) [0] #less(z0, z1) -> #cklt(#compare(z0, z1)) [0] and(z0, z1) -> #and(z0, z1) [0] insert(z0, z1) -> insert#1(z1, z0) [0] insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) [0] insert#1(nil, z0) -> ::(z0, nil) [0] insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) [0] insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) [0] isortlist(z0) -> isortlist#1(z0) [0] isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) [0] isortlist#1(nil) -> nil [0] leq(z0, z1) -> leq#1(z0, z1) [0] leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) [0] leq#1(nil, z0) -> #true [0] leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) [0] leq#2(nil, z0, z1) -> #false [0] or(z0, z1) -> #or(z0, z1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (6) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) [1] #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) [1] AND(z0, z1) -> c42(#AND(z0, z1)) [1] INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) [1] INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) [1] INSERT#1(nil, z0) -> c45 [1] INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) [1] INSERT#2(#true, z0, z1, z2) -> c47 [1] ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) [1] ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) [1] ISORTLIST#1(nil) -> c50 [1] LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) [1] LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) [1] LEQ#1(nil, z0) -> c53 [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) [1] LEQ#2(nil, z0, z1) -> c57 [1] OR(z0, z1) -> c58(#OR(z0, z1)) [1] #AND(#false, #false) -> c [0] #AND(#false, #true) -> c1 [0] #AND(#true, #false) -> c2 [0] #AND(#true, #true) -> c3 [0] #CKLT(#EQ) -> c4 [0] #CKLT(#GT) -> c5 [0] #CKLT(#LT) -> c6 [0] #COMPARE(#0, #0) -> c7 [0] #COMPARE(#0, #neg(z0)) -> c8 [0] #COMPARE(#0, #pos(z0)) -> c9 [0] #COMPARE(#0, #s(z0)) -> c10 [0] #COMPARE(#neg(z0), #0) -> c11 [0] #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) [0] #COMPARE(#neg(z0), #pos(z1)) -> c13 [0] #COMPARE(#pos(z0), #0) -> c14 [0] #COMPARE(#pos(z0), #neg(z1)) -> c15 [0] #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) [0] #COMPARE(#s(z0), #0) -> c17 [0] #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) [0] #EQ'(#0, #0) -> c19 [0] #EQ'(#0, #neg(z0)) -> c20 [0] #EQ'(#0, #pos(z0)) -> c21 [0] #EQ'(#0, #s(z0)) -> c22 [0] #EQ'(#neg(z0), #0) -> c23 [0] #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) [0] #EQ'(#neg(z0), #pos(z1)) -> c25 [0] #EQ'(#pos(z0), #0) -> c26 [0] #EQ'(#pos(z0), #neg(z1)) -> c27 [0] #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) [0] #EQ'(#s(z0), #0) -> c29 [0] #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) [0] #EQ'(::(z0, z1), nil) -> c33 [0] #EQ'(nil, ::(z0, z1)) -> c34 [0] #EQ'(nil, nil) -> c35 [0] #OR(#false, #false) -> c36 [0] #OR(#false, #true) -> c37 [0] #OR(#true, #false) -> c38 [0] #OR(#true, #true) -> c39 [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #cklt(#EQ) -> #false [0] #cklt(#GT) -> #false [0] #cklt(#LT) -> #true [0] #compare(#0, #0) -> #EQ [0] #compare(#0, #neg(z0)) -> #GT [0] #compare(#0, #pos(z0)) -> #LT [0] #compare(#0, #s(z0)) -> #LT [0] #compare(#neg(z0), #0) -> #LT [0] #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) [0] #compare(#neg(z0), #pos(z1)) -> #LT [0] #compare(#pos(z0), #0) -> #GT [0] #compare(#pos(z0), #neg(z1)) -> #GT [0] #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) [0] #compare(#s(z0), #0) -> #GT [0] #compare(#s(z0), #s(z1)) -> #compare(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), nil) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, nil) -> #true [0] #or(#false, #false) -> #false [0] #or(#false, #true) -> #true [0] #or(#true, #false) -> #true [0] #or(#true, #true) -> #true [0] #equal(z0, z1) -> #eq(z0, z1) [0] #less(z0, z1) -> #cklt(#compare(z0, z1)) [0] and(z0, z1) -> #and(z0, z1) [0] insert(z0, z1) -> insert#1(z1, z0) [0] insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) [0] insert#1(nil, z0) -> ::(z0, nil) [0] insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) [0] insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) [0] isortlist(z0) -> isortlist#1(z0) [0] isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) [0] isortlist#1(nil) -> nil [0] leq(z0, z1) -> leq#1(z0, z1) [0] leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) [0] leq#1(nil, z0) -> #true [0] leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) [0] leq#2(nil, z0, z1) -> #false [0] or(z0, z1) -> #or(z0, z1) [0] The TRS has the following type information: #EQUAL :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c40 c40 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 -> c40 #EQ' :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 #LESS :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c41 c41 :: c4:c5:c6 -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 -> c41 #CKLT :: #EQ:#GT:#LT -> c4:c5:c6 #compare :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #EQ:#GT:#LT #COMPARE :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 AND :: #false:#true -> #false:#true -> c42 c42 :: c:c1:c2:c3 -> c42 #AND :: #false:#true -> #false:#true -> c:c1:c2:c3 INSERT :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c43 c43 :: c44:c45 -> c43 INSERT#1 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c44:c45 :: :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s c44 :: c46:c47 -> c51 -> c44:c45 INSERT#2 :: #false:#true -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c46:c47 leq :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #false:#true LEQ :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c51 nil :: :::nil:#0:#neg:#pos:#s c45 :: c44:c45 #false :: #false:#true c46 :: c43 -> c46:c47 #true :: #false:#true c47 :: c46:c47 ISORTLIST :: :::nil:#0:#neg:#pos:#s -> c48 c48 :: c49:c50 -> c48 ISORTLIST#1 :: :::nil:#0:#neg:#pos:#s -> c49:c50 c49 :: c43 -> c48 -> c49:c50 isortlist :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s c50 :: c49:c50 c51 :: c52:c53 -> c51 LEQ#1 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c52:c53 c52 :: c54:c55:c56:c57 -> c52:c53 LEQ#2 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> c54:c55:c56:c57 c53 :: c52:c53 c54 :: c58 -> c41 -> c54:c55:c56:c57 OR :: #false:#true -> #false:#true -> c58 #less :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #false:#true and :: #false:#true -> #false:#true -> #false:#true #equal :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #false:#true c55 :: c58 -> c42 -> c40 -> c54:c55:c56:c57 c56 :: c58 -> c42 -> c51 -> c54:c55:c56:c57 c57 :: c54:c55:c56:c57 c58 :: c36:c37:c38:c39 -> c58 #OR :: #false:#true -> #false:#true -> c36:c37:c38:c39 c :: c:c1:c2:c3 c1 :: c:c1:c2:c3 c2 :: c:c1:c2:c3 c3 :: c:c1:c2:c3 #EQ :: #EQ:#GT:#LT c4 :: c4:c5:c6 #GT :: #EQ:#GT:#LT c5 :: c4:c5:c6 #LT :: #EQ:#GT:#LT c6 :: c4:c5:c6 #0 :: :::nil:#0:#neg:#pos:#s c7 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 #neg :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s c8 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 #pos :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s c9 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 #s :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s c10 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c11 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c12 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c13 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c14 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c15 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c16 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c17 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c18 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18 c19 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c20 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c21 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c22 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c23 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c24 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c25 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c26 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c27 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c28 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c29 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c30 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c31 :: c:c1:c2:c3 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 #eq :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #false:#true c32 :: c:c1:c2:c3 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c33 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c34 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c35 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35 c36 :: c36:c37:c38:c39 c37 :: c36:c37:c38:c39 c38 :: c36:c37:c38:c39 c39 :: c36:c37:c38:c39 #and :: #false:#true -> #false:#true -> #false:#true #cklt :: #EQ:#GT:#LT -> #false:#true #or :: #false:#true -> #false:#true -> #false:#true insert :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s insert#1 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s insert#2 :: #false:#true -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s isortlist#1 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s leq#1 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #false:#true leq#2 :: :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> :::nil:#0:#neg:#pos:#s -> #false:#true or :: #false:#true -> #false:#true -> #false:#true Rewrite Strategy: INNERMOST ---------------------------------------- (7) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: #EQUAL_2 #LESS_2 AND_2 INSERT_2 INSERT#1_2 INSERT#2_4 ISORTLIST_1 ISORTLIST#1_1 LEQ_2 LEQ#1_2 LEQ#2_3 OR_2 (c) The following functions are completely defined: #AND_2 #CKLT_1 #COMPARE_2 #EQ'_2 #OR_2 #and_2 #cklt_1 #compare_2 #eq_2 #or_2 #equal_2 #less_2 and_2 insert_2 insert#1_2 insert#2_4 isortlist_1 isortlist#1_1 leq_2 leq#1_2 leq#2_3 or_2 Due to the following rules being added: #AND(v0, v1) -> null_#AND [0] #CKLT(v0) -> null_#CKLT [0] #COMPARE(v0, v1) -> null_#COMPARE [0] #EQ'(v0, v1) -> null_#EQ' [0] #OR(v0, v1) -> null_#OR [0] #and(v0, v1) -> null_#and [0] #cklt(v0) -> null_#cklt [0] #compare(v0, v1) -> null_#compare [0] #eq(v0, v1) -> null_#eq [0] #or(v0, v1) -> null_#or [0] #equal(v0, v1) -> null_#equal [0] #less(v0, v1) -> null_#less [0] and(v0, v1) -> null_and [0] insert(v0, v1) -> null_insert [0] insert#1(v0, v1) -> null_insert#1 [0] insert#2(v0, v1, v2, v3) -> null_insert#2 [0] isortlist(v0) -> null_isortlist [0] isortlist#1(v0) -> null_isortlist#1 [0] leq(v0, v1) -> null_leq [0] leq#1(v0, v1) -> null_leq#1 [0] leq#2(v0, v1, v2) -> null_leq#2 [0] or(v0, v1) -> null_or [0] And the following fresh constants: null_#AND, null_#CKLT, null_#COMPARE, null_#EQ', null_#OR, null_#and, null_#cklt, null_#compare, null_#eq, null_#or, null_#equal, null_#less, null_and, null_insert, null_insert#1, null_insert#2, null_isortlist, null_isortlist#1, null_leq, null_leq#1, null_leq#2, null_or, const, const1, const2, const3, const4, const5, const6 ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) [1] #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) [1] AND(z0, z1) -> c42(#AND(z0, z1)) [1] INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) [1] INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) [1] INSERT#1(nil, z0) -> c45 [1] INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) [1] INSERT#2(#true, z0, z1, z2) -> c47 [1] ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) [1] ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) [1] ISORTLIST#1(nil) -> c50 [1] LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) [1] LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) [1] LEQ#1(nil, z0) -> c53 [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) [1] LEQ#2(nil, z0, z1) -> c57 [1] OR(z0, z1) -> c58(#OR(z0, z1)) [1] #AND(#false, #false) -> c [0] #AND(#false, #true) -> c1 [0] #AND(#true, #false) -> c2 [0] #AND(#true, #true) -> c3 [0] #CKLT(#EQ) -> c4 [0] #CKLT(#GT) -> c5 [0] #CKLT(#LT) -> c6 [0] #COMPARE(#0, #0) -> c7 [0] #COMPARE(#0, #neg(z0)) -> c8 [0] #COMPARE(#0, #pos(z0)) -> c9 [0] #COMPARE(#0, #s(z0)) -> c10 [0] #COMPARE(#neg(z0), #0) -> c11 [0] #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) [0] #COMPARE(#neg(z0), #pos(z1)) -> c13 [0] #COMPARE(#pos(z0), #0) -> c14 [0] #COMPARE(#pos(z0), #neg(z1)) -> c15 [0] #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) [0] #COMPARE(#s(z0), #0) -> c17 [0] #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) [0] #EQ'(#0, #0) -> c19 [0] #EQ'(#0, #neg(z0)) -> c20 [0] #EQ'(#0, #pos(z0)) -> c21 [0] #EQ'(#0, #s(z0)) -> c22 [0] #EQ'(#neg(z0), #0) -> c23 [0] #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) [0] #EQ'(#neg(z0), #pos(z1)) -> c25 [0] #EQ'(#pos(z0), #0) -> c26 [0] #EQ'(#pos(z0), #neg(z1)) -> c27 [0] #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) [0] #EQ'(#s(z0), #0) -> c29 [0] #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) [0] #EQ'(::(z0, z1), nil) -> c33 [0] #EQ'(nil, ::(z0, z1)) -> c34 [0] #EQ'(nil, nil) -> c35 [0] #OR(#false, #false) -> c36 [0] #OR(#false, #true) -> c37 [0] #OR(#true, #false) -> c38 [0] #OR(#true, #true) -> c39 [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #cklt(#EQ) -> #false [0] #cklt(#GT) -> #false [0] #cklt(#LT) -> #true [0] #compare(#0, #0) -> #EQ [0] #compare(#0, #neg(z0)) -> #GT [0] #compare(#0, #pos(z0)) -> #LT [0] #compare(#0, #s(z0)) -> #LT [0] #compare(#neg(z0), #0) -> #LT [0] #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) [0] #compare(#neg(z0), #pos(z1)) -> #LT [0] #compare(#pos(z0), #0) -> #GT [0] #compare(#pos(z0), #neg(z1)) -> #GT [0] #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) [0] #compare(#s(z0), #0) -> #GT [0] #compare(#s(z0), #s(z1)) -> #compare(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), nil) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, nil) -> #true [0] #or(#false, #false) -> #false [0] #or(#false, #true) -> #true [0] #or(#true, #false) -> #true [0] #or(#true, #true) -> #true [0] #equal(z0, z1) -> #eq(z0, z1) [0] #less(z0, z1) -> #cklt(#compare(z0, z1)) [0] and(z0, z1) -> #and(z0, z1) [0] insert(z0, z1) -> insert#1(z1, z0) [0] insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) [0] insert#1(nil, z0) -> ::(z0, nil) [0] insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) [0] insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) [0] isortlist(z0) -> isortlist#1(z0) [0] isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) [0] isortlist#1(nil) -> nil [0] leq(z0, z1) -> leq#1(z0, z1) [0] leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) [0] leq#1(nil, z0) -> #true [0] leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) [0] leq#2(nil, z0, z1) -> #false [0] or(z0, z1) -> #or(z0, z1) [0] #AND(v0, v1) -> null_#AND [0] #CKLT(v0) -> null_#CKLT [0] #COMPARE(v0, v1) -> null_#COMPARE [0] #EQ'(v0, v1) -> null_#EQ' [0] #OR(v0, v1) -> null_#OR [0] #and(v0, v1) -> null_#and [0] #cklt(v0) -> null_#cklt [0] #compare(v0, v1) -> null_#compare [0] #eq(v0, v1) -> null_#eq [0] #or(v0, v1) -> null_#or [0] #equal(v0, v1) -> null_#equal [0] #less(v0, v1) -> null_#less [0] and(v0, v1) -> null_and [0] insert(v0, v1) -> null_insert [0] insert#1(v0, v1) -> null_insert#1 [0] insert#2(v0, v1, v2, v3) -> null_insert#2 [0] isortlist(v0) -> null_isortlist [0] isortlist#1(v0) -> null_isortlist#1 [0] leq(v0, v1) -> null_leq [0] leq#1(v0, v1) -> null_leq#1 [0] leq#2(v0, v1, v2) -> null_leq#2 [0] or(v0, v1) -> null_or [0] The TRS has the following type information: #EQUAL :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c40 c40 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c40 #EQ' :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' #LESS :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c41 c41 :: c4:c5:c6:null_#CKLT -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c41 #CKLT :: #EQ:#GT:#LT:null_#compare -> c4:c5:c6:null_#CKLT #compare :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #EQ:#GT:#LT:null_#compare #COMPARE :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE AND :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c42 c42 :: c:c1:c2:c3:null_#AND -> c42 #AND :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c:c1:c2:c3:null_#AND INSERT :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c43 c43 :: c44:c45 -> c43 INSERT#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c44:c45 :: :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c44 :: c46:c47 -> c51 -> c44:c45 INSERT#2 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c46:c47 leq :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or LEQ :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c51 nil :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c45 :: c44:c45 #false :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c46 :: c43 -> c46:c47 #true :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c47 :: c46:c47 ISORTLIST :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c48 c48 :: c49:c50 -> c48 ISORTLIST#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c49:c50 c49 :: c43 -> c48 -> c49:c50 isortlist :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c50 :: c49:c50 c51 :: c52:c53 -> c51 LEQ#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c52:c53 c52 :: c54:c55:c56:c57 -> c52:c53 LEQ#2 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c54:c55:c56:c57 c53 :: c52:c53 c54 :: c58 -> c41 -> c54:c55:c56:c57 OR :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c58 #less :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or #equal :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c55 :: c58 -> c42 -> c40 -> c54:c55:c56:c57 c56 :: c58 -> c42 -> c51 -> c54:c55:c56:c57 c57 :: c54:c55:c56:c57 c58 :: c36:c37:c38:c39:null_#OR -> c58 #OR :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c36:c37:c38:c39:null_#OR c :: c:c1:c2:c3:null_#AND c1 :: c:c1:c2:c3:null_#AND c2 :: c:c1:c2:c3:null_#AND c3 :: c:c1:c2:c3:null_#AND #EQ :: #EQ:#GT:#LT:null_#compare c4 :: c4:c5:c6:null_#CKLT #GT :: #EQ:#GT:#LT:null_#compare c5 :: c4:c5:c6:null_#CKLT #LT :: #EQ:#GT:#LT:null_#compare c6 :: c4:c5:c6:null_#CKLT #0 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c7 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE #neg :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c8 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE #pos :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c9 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE #s :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c10 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c11 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c12 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c13 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c14 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c15 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c16 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c17 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c18 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c19 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c20 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c21 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c22 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c23 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c24 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c25 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c26 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c27 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c28 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c29 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c30 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c31 :: c:c1:c2:c3:null_#AND -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' #eq :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c32 :: c:c1:c2:c3:null_#AND -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c33 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c34 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c35 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c36 :: c36:c37:c38:c39:null_#OR c37 :: c36:c37:c38:c39:null_#OR c38 :: c36:c37:c38:c39:null_#OR c39 :: c36:c37:c38:c39:null_#OR #and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or #cklt :: #EQ:#GT:#LT:null_#compare -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or #or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or insert :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 insert#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 insert#2 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 isortlist#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 leq#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or leq#2 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#AND :: c:c1:c2:c3:null_#AND null_#CKLT :: c4:c5:c6:null_#CKLT null_#COMPARE :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE null_#EQ' :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' null_#OR :: c36:c37:c38:c39:null_#OR null_#and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#cklt :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#compare :: #EQ:#GT:#LT:null_#compare null_#eq :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#equal :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#less :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_insert :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_insert#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_insert#2 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_isortlist :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_isortlist#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_leq :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_leq#1 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_leq#2 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or const :: c40 const1 :: c41 const2 :: c42 const3 :: c43 const4 :: c51 const5 :: c48 const6 :: c58 Rewrite Strategy: INNERMOST ---------------------------------------- (9) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) [1] #LESS(#0, #0) -> c41(#CKLT(#EQ), #COMPARE(#0, #0)) [1] #LESS(#0, #neg(z0')) -> c41(#CKLT(#GT), #COMPARE(#0, #neg(z0'))) [1] #LESS(#0, #pos(z0'')) -> c41(#CKLT(#LT), #COMPARE(#0, #pos(z0''))) [1] #LESS(#0, #s(z01)) -> c41(#CKLT(#LT), #COMPARE(#0, #s(z01))) [1] #LESS(#neg(z02), #0) -> c41(#CKLT(#LT), #COMPARE(#neg(z02), #0)) [1] #LESS(#neg(z03), #neg(z1')) -> c41(#CKLT(#compare(z1', z03)), #COMPARE(#neg(z03), #neg(z1'))) [1] #LESS(#neg(z04), #pos(z1'')) -> c41(#CKLT(#LT), #COMPARE(#neg(z04), #pos(z1''))) [1] #LESS(#pos(z05), #0) -> c41(#CKLT(#GT), #COMPARE(#pos(z05), #0)) [1] #LESS(#pos(z06), #neg(z11)) -> c41(#CKLT(#GT), #COMPARE(#pos(z06), #neg(z11))) [1] #LESS(#pos(z07), #pos(z12)) -> c41(#CKLT(#compare(z07, z12)), #COMPARE(#pos(z07), #pos(z12))) [1] #LESS(#s(z08), #0) -> c41(#CKLT(#GT), #COMPARE(#s(z08), #0)) [1] #LESS(#s(z09), #s(z13)) -> c41(#CKLT(#compare(z09, z13)), #COMPARE(#s(z09), #s(z13))) [1] #LESS(z0, z1) -> c41(#CKLT(null_#compare), #COMPARE(z0, z1)) [1] AND(z0, z1) -> c42(#AND(z0, z1)) [1] INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) [1] INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq#1(z2, z0), z2, z0, z1), LEQ(z2, z0)) [1] INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(null_leq, z2, z0, z1), LEQ(z2, z0)) [1] INSERT#1(nil, z0) -> c45 [1] INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) [1] INSERT#2(#true, z0, z1, z2) -> c47 [1] ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) [1] ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist#1(z1)), ISORTLIST(z1)) [1] ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, null_isortlist), ISORTLIST(z1)) [1] ISORTLIST#1(nil) -> c50 [1] LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) [1] LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) [1] LEQ#1(nil, z0) -> c53 [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#cklt(#compare(z2, z0)), and(#eq(z2, z0), leq#1(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#cklt(#compare(z2, z0)), and(#eq(z2, z0), null_leq)), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#cklt(#compare(z2, z0)), and(null_#equal, leq#1(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#cklt(#compare(z2, z0)), and(null_#equal, null_leq)), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(null_#less, and(#eq(z2, z0), leq#1(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(null_#less, and(#eq(z2, z0), null_leq)), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(null_#less, and(null_#equal, leq#1(z3, z1))), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c54(OR(null_#less, and(null_#equal, null_leq)), #LESS(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) [1] LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) [1] LEQ#2(nil, z0, z1) -> c57 [1] OR(z0, z1) -> c58(#OR(z0, z1)) [1] #AND(#false, #false) -> c [0] #AND(#false, #true) -> c1 [0] #AND(#true, #false) -> c2 [0] #AND(#true, #true) -> c3 [0] #CKLT(#EQ) -> c4 [0] #CKLT(#GT) -> c5 [0] #CKLT(#LT) -> c6 [0] #COMPARE(#0, #0) -> c7 [0] #COMPARE(#0, #neg(z0)) -> c8 [0] #COMPARE(#0, #pos(z0)) -> c9 [0] #COMPARE(#0, #s(z0)) -> c10 [0] #COMPARE(#neg(z0), #0) -> c11 [0] #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) [0] #COMPARE(#neg(z0), #pos(z1)) -> c13 [0] #COMPARE(#pos(z0), #0) -> c14 [0] #COMPARE(#pos(z0), #neg(z1)) -> c15 [0] #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) [0] #COMPARE(#s(z0), #0) -> c17 [0] #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) [0] #EQ'(#0, #0) -> c19 [0] #EQ'(#0, #neg(z0)) -> c20 [0] #EQ'(#0, #pos(z0)) -> c21 [0] #EQ'(#0, #s(z0)) -> c22 [0] #EQ'(#neg(z0), #0) -> c23 [0] #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) [0] #EQ'(#neg(z0), #pos(z1)) -> c25 [0] #EQ'(#pos(z0), #0) -> c26 [0] #EQ'(#pos(z0), #neg(z1)) -> c27 [0] #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) [0] #EQ'(#s(z0), #0) -> c29 [0] #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) [0] #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) [0] #EQ'(::(z0, z1), nil) -> c33 [0] #EQ'(nil, ::(z0, z1)) -> c34 [0] #EQ'(nil, nil) -> c35 [0] #OR(#false, #false) -> c36 [0] #OR(#false, #true) -> c37 [0] #OR(#true, #false) -> c38 [0] #OR(#true, #true) -> c39 [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #cklt(#EQ) -> #false [0] #cklt(#GT) -> #false [0] #cklt(#LT) -> #true [0] #compare(#0, #0) -> #EQ [0] #compare(#0, #neg(z0)) -> #GT [0] #compare(#0, #pos(z0)) -> #LT [0] #compare(#0, #s(z0)) -> #LT [0] #compare(#neg(z0), #0) -> #LT [0] #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) [0] #compare(#neg(z0), #pos(z1)) -> #LT [0] #compare(#pos(z0), #0) -> #GT [0] #compare(#pos(z0), #neg(z1)) -> #GT [0] #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) [0] #compare(#s(z0), #0) -> #GT [0] #compare(#s(z0), #s(z1)) -> #compare(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), nil) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, nil) -> #true [0] #or(#false, #false) -> #false [0] #or(#false, #true) -> #true [0] #or(#true, #false) -> #true [0] #or(#true, #true) -> #true [0] #equal(z0, z1) -> #eq(z0, z1) [0] #less(#0, #0) -> #cklt(#EQ) [0] #less(#0, #neg(z0766)) -> #cklt(#GT) [0] #less(#0, #pos(z0767)) -> #cklt(#LT) [0] #less(#0, #s(z0768)) -> #cklt(#LT) [0] #less(#neg(z0769), #0) -> #cklt(#LT) [0] #less(#neg(z0770), #neg(z1436)) -> #cklt(#compare(z1436, z0770)) [0] #less(#neg(z0771), #pos(z1437)) -> #cklt(#LT) [0] #less(#pos(z0772), #0) -> #cklt(#GT) [0] #less(#pos(z0773), #neg(z1438)) -> #cklt(#GT) [0] #less(#pos(z0774), #pos(z1439)) -> #cklt(#compare(z0774, z1439)) [0] #less(#s(z0775), #0) -> #cklt(#GT) [0] #less(#s(z0776), #s(z1440)) -> #cklt(#compare(z0776, z1440)) [0] #less(z0, z1) -> #cklt(null_#compare) [0] and(z0, z1) -> #and(z0, z1) [0] insert(z0, z1) -> insert#1(z1, z0) [0] insert#1(::(z0, z1), z2) -> insert#2(leq#1(z2, z0), z2, z0, z1) [0] insert#1(::(z0, z1), z2) -> insert#2(null_leq, z2, z0, z1) [0] insert#1(nil, z0) -> ::(z0, nil) [0] insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) [0] insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) [0] isortlist(z0) -> isortlist#1(z0) [0] isortlist#1(::(z0, z1)) -> insert(z0, isortlist#1(z1)) [0] isortlist#1(::(z0, z1)) -> insert(z0, null_isortlist) [0] isortlist#1(nil) -> nil [0] leq(z0, z1) -> leq#1(z0, z1) [0] leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) [0] leq#1(nil, z0) -> #true [0] leq#2(::(z0, z1), z2, z3) -> or(#cklt(#compare(z2, z0)), and(#eq(z2, z0), leq#1(z3, z1))) [0] leq#2(::(z0, z1), z2, z3) -> or(#cklt(#compare(z2, z0)), and(#eq(z2, z0), null_leq)) [0] leq#2(::(z0, z1), z2, z3) -> or(#cklt(#compare(z2, z0)), and(null_#equal, leq#1(z3, z1))) [0] leq#2(::(z0, z1), z2, z3) -> or(#cklt(#compare(z2, z0)), and(null_#equal, null_leq)) [0] leq#2(::(z0, z1), z2, z3) -> or(null_#less, and(#eq(z2, z0), leq#1(z3, z1))) [0] leq#2(::(z0, z1), z2, z3) -> or(null_#less, and(#eq(z2, z0), null_leq)) [0] leq#2(::(z0, z1), z2, z3) -> or(null_#less, and(null_#equal, leq#1(z3, z1))) [0] leq#2(::(z0, z1), z2, z3) -> or(null_#less, and(null_#equal, null_leq)) [0] leq#2(nil, z0, z1) -> #false [0] or(z0, z1) -> #or(z0, z1) [0] #AND(v0, v1) -> null_#AND [0] #CKLT(v0) -> null_#CKLT [0] #COMPARE(v0, v1) -> null_#COMPARE [0] #EQ'(v0, v1) -> null_#EQ' [0] #OR(v0, v1) -> null_#OR [0] #and(v0, v1) -> null_#and [0] #cklt(v0) -> null_#cklt [0] #compare(v0, v1) -> null_#compare [0] #eq(v0, v1) -> null_#eq [0] #or(v0, v1) -> null_#or [0] #equal(v0, v1) -> null_#equal [0] #less(v0, v1) -> null_#less [0] and(v0, v1) -> null_and [0] insert(v0, v1) -> null_insert [0] insert#1(v0, v1) -> null_insert#1 [0] insert#2(v0, v1, v2, v3) -> null_insert#2 [0] isortlist(v0) -> null_isortlist [0] isortlist#1(v0) -> null_isortlist#1 [0] leq(v0, v1) -> null_leq [0] leq#1(v0, v1) -> null_leq#1 [0] leq#2(v0, v1, v2) -> null_leq#2 [0] or(v0, v1) -> null_or [0] The TRS has the following type information: #EQUAL :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c40 c40 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c40 #EQ' :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' #LESS :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c41 c41 :: c4:c5:c6:null_#CKLT -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c41 #CKLT :: #EQ:#GT:#LT:null_#compare -> c4:c5:c6:null_#CKLT #compare :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #EQ:#GT:#LT:null_#compare #COMPARE :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE AND :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c42 c42 :: c:c1:c2:c3:null_#AND -> c42 #AND :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c:c1:c2:c3:null_#AND INSERT :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c43 c43 :: c44:c45 -> c43 INSERT#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c44:c45 :: :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c44 :: c46:c47 -> c51 -> c44:c45 INSERT#2 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c46:c47 leq :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or LEQ :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c51 nil :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c45 :: c44:c45 #false :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c46 :: c43 -> c46:c47 #true :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c47 :: c46:c47 ISORTLIST :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c48 c48 :: c49:c50 -> c48 ISORTLIST#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c49:c50 c49 :: c43 -> c48 -> c49:c50 isortlist :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c50 :: c49:c50 c51 :: c52:c53 -> c51 LEQ#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c52:c53 c52 :: c54:c55:c56:c57 -> c52:c53 LEQ#2 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> c54:c55:c56:c57 c53 :: c52:c53 c54 :: c58 -> c41 -> c54:c55:c56:c57 OR :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c58 #less :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or #equal :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c55 :: c58 -> c42 -> c40 -> c54:c55:c56:c57 c56 :: c58 -> c42 -> c51 -> c54:c55:c56:c57 c57 :: c54:c55:c56:c57 c58 :: c36:c37:c38:c39:null_#OR -> c58 #OR :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> c36:c37:c38:c39:null_#OR c :: c:c1:c2:c3:null_#AND c1 :: c:c1:c2:c3:null_#AND c2 :: c:c1:c2:c3:null_#AND c3 :: c:c1:c2:c3:null_#AND #EQ :: #EQ:#GT:#LT:null_#compare c4 :: c4:c5:c6:null_#CKLT #GT :: #EQ:#GT:#LT:null_#compare c5 :: c4:c5:c6:null_#CKLT #LT :: #EQ:#GT:#LT:null_#compare c6 :: c4:c5:c6:null_#CKLT #0 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c7 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE #neg :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c8 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE #pos :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c9 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE #s :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 c10 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c11 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c12 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c13 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c14 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c15 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c16 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c17 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c18 :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE -> c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE c19 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c20 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c21 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c22 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c23 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c24 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c25 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c26 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c27 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c28 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c29 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c30 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c31 :: c:c1:c2:c3:null_#AND -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' #eq :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or c32 :: c:c1:c2:c3:null_#AND -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' -> c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c33 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c34 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c35 :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' c36 :: c36:c37:c38:c39:null_#OR c37 :: c36:c37:c38:c39:null_#OR c38 :: c36:c37:c38:c39:null_#OR c39 :: c36:c37:c38:c39:null_#OR #and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or #cklt :: #EQ:#GT:#LT:null_#compare -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or #or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or insert :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 insert#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 insert#2 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 isortlist#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 leq#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or leq#2 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or -> #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#AND :: c:c1:c2:c3:null_#AND null_#CKLT :: c4:c5:c6:null_#CKLT null_#COMPARE :: c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:null_#COMPARE null_#EQ' :: c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34:c35:null_#EQ' null_#OR :: c36:c37:c38:c39:null_#OR null_#and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#cklt :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#compare :: #EQ:#GT:#LT:null_#compare null_#eq :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#equal :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_#less :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_and :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_insert :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_insert#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_insert#2 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_isortlist :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_isortlist#1 :: :::nil:#0:#neg:#pos:#s:null_insert:null_insert#1:null_insert#2:null_isortlist:null_isortlist#1 null_leq :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_leq#1 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_leq#2 :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or null_or :: #false:#true:null_#and:null_#cklt:null_#eq:null_#or:null_#equal:null_#less:null_and:null_leq:null_leq#1:null_leq#2:null_or const :: c40 const1 :: c41 const2 :: c42 const3 :: c43 const4 :: c51 const5 :: c48 const6 :: c58 Rewrite Strategy: INNERMOST ---------------------------------------- (11) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: nil => 1 c45 => 0 #false => 1 #true => 2 c47 => 0 c50 => 0 c53 => 0 c57 => 0 c => 1 c1 => 2 c2 => 3 c3 => 4 #EQ => 1 c4 => 1 #GT => 2 c5 => 2 #LT => 3 c6 => 3 #0 => 0 c7 => 6 c8 => 7 c9 => 8 c10 => 0 c11 => 1 c13 => 2 c14 => 3 c15 => 4 c17 => 5 c19 => 0 c20 => 1 c21 => 2 c22 => 3 c23 => 4 c25 => 5 c26 => 6 c27 => 7 c29 => 8 c33 => 9 c34 => 10 c35 => 11 c36 => 1 c37 => 2 c38 => 3 c39 => 4 null_#AND => 0 null_#CKLT => 0 null_#COMPARE => 0 null_#EQ' => 0 null_#OR => 0 null_#and => 0 null_#cklt => 0 null_#compare => 0 null_#eq => 0 null_#or => 0 null_#equal => 0 null_#less => 0 null_and => 0 null_insert => 0 null_insert#1 => 0 null_insert#2 => 0 null_isortlist => 0 null_isortlist#1 => 0 null_leq => 0 null_leq#1 => 0 null_leq#2 => 0 null_or => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 const4 => 0 const5 => 0 const6 => 0 ---------------------------------------- (12) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 #COMPARE(z, z') -{ 0 }-> 8 :|: z0 >= 0, z' = 1 + z0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z0 >= 0, z' = 1 + z0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z = 1 + z0, z0 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #COMPARE(z, z') -{ 0 }-> 3 :|: z = 1 + z0, z0 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #COMPARE(z, z') -{ 0 }-> 1 :|: z = 1 + z0, z0 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z0 >= 0, z' = 1 + z0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z1, z0) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z = 1 + z0, z0 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 6 :|: z = 1 + z0, z0 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 4 :|: z = 1 + z0, z0 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z0 >= 0, z' = 1 + z0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z0 >= 0, z' = 1 + z0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z0 >= 0, z' = 1 + z0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(3) + #COMPARE(0, 1 + z0'') :|: z' = 1 + z0'', z0'' >= 0, z = 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(3) + #COMPARE(0, 1 + z01) :|: z01 >= 0, z' = 1 + z01, z = 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(3) + #COMPARE(1 + z02, 0) :|: z = 1 + z02, z02 >= 0, z' = 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(3) + #COMPARE(1 + z04, 1 + z1'') :|: z04 >= 0, z' = 1 + z1'', z = 1 + z04, z1'' >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(2) + #COMPARE(0, 1 + z0') :|: z0' >= 0, z = 0, z' = 1 + z0' #LESS(z, z') -{ 1 }-> 1 + #CKLT(2) + #COMPARE(1 + z05, 0) :|: z05 >= 0, z = 1 + z05, z' = 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(2) + #COMPARE(1 + z06, 1 + z11) :|: z' = 1 + z11, z11 >= 0, z06 >= 0, z = 1 + z06 #LESS(z, z') -{ 1 }-> 1 + #CKLT(2) + #COMPARE(1 + z08, 0) :|: z08 >= 0, z = 1 + z08, z' = 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(1) + #COMPARE(0, 0) :|: z = 0, z' = 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(0) + #COMPARE(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z07, z12)) + #COMPARE(1 + z07, 1 + z12) :|: z' = 1 + z12, z07 >= 0, z = 1 + z07, z12 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z09, z13)) + #COMPARE(1 + z09, 1 + z13) :|: z' = 1 + z13, z = 1 + z09, z09 >= 0, z13 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z1', z03)) + #COMPARE(1 + z03, 1 + z1') :|: z' = 1 + z1', z1' >= 0, z = 1 + z03, z03 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 #compare(z, z') -{ 0 }-> 3 :|: z0 >= 0, z' = 1 + z0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z = 1 + z0, z0 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #compare(z, z') -{ 0 }-> 2 :|: z0 >= 0, z' = 1 + z0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z = 1 + z0, z0 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #compare(z, z') -{ 0 }-> #compare(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #compare(z, z') -{ 0 }-> #compare(z1, z0) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z0 >= 0, z' = 1 + z0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1 + z0, z0 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #eq(z, z') -{ 0 }-> #eq(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #equal(z, z') -{ 0 }-> #eq(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #less(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #less(z, z') -{ 0 }-> #cklt(3) :|: z' = 1 + z0767, z0767 >= 0, z = 0 #less(z, z') -{ 0 }-> #cklt(3) :|: z' = 1 + z0768, z0768 >= 0, z = 0 #less(z, z') -{ 0 }-> #cklt(3) :|: z0769 >= 0, z = 1 + z0769, z' = 0 #less(z, z') -{ 0 }-> #cklt(3) :|: z = 1 + z0771, z0771 >= 0, z1437 >= 0, z' = 1 + z1437 #less(z, z') -{ 0 }-> #cklt(2) :|: z = 0, z' = 1 + z0766, z0766 >= 0 #less(z, z') -{ 0 }-> #cklt(2) :|: z = 1 + z0772, z0772 >= 0, z' = 0 #less(z, z') -{ 0 }-> #cklt(2) :|: z = 1 + z0773, z' = 1 + z1438, z1438 >= 0, z0773 >= 0 #less(z, z') -{ 0 }-> #cklt(2) :|: z0775 >= 0, z = 1 + z0775, z' = 0 #less(z, z') -{ 0 }-> #cklt(1) :|: z = 0, z' = 0 #less(z, z') -{ 0 }-> #cklt(0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z0774, z1439)) :|: z = 1 + z0774, z' = 1 + z1439, z1439 >= 0, z0774 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z0776, z1440)) :|: z' = 1 + z1440, z = 1 + z0776, z1440 >= 0, z0776 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z1436, z0770)) :|: z = 1 + z0770, z0770 >= 0, z' = 1 + z1436, z1436 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 AND(z, z') -{ 1 }-> 1 + #AND(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z1, z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z0 >= 0, z' = z0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z2, z0), z2, z0, z1) + LEQ(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z2, z0, z1) + LEQ(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z0, z2) :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z0) :|: z = z0, z0 >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z0 >= 0, z' = z0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z'' = z1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, 0)) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z2, z0), leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z2, z0), 0)) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(0, leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(0, 0)) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(#eq(z2, z0), leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(#eq(z2, z0), 0)) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) + AND(#equal(z2, z0), leq(z3, z1)) + LEQ(z3, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) + AND(#equal(z2, z0), leq(z3, z1)) + #EQUAL(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 OR(z, z') -{ 1 }-> 1 + #OR(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 and(z, z') -{ 0 }-> #and(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 insert(z, z') -{ 0 }-> insert#1(z1, z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 insert(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z2, z0), z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 insert#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 insert#1(z, z') -{ 0 }-> 1 + z0 + 1 :|: z = 1, z0 >= 0, z' = z0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z0 + (1 + z1 + z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z1 + insert(z0, z2) :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 isortlist(z) -{ 0 }-> isortlist#1(z0) :|: z = z0, z0 >= 0 isortlist(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 leq(z, z') -{ 0 }-> leq#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 leq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 leq#1(z, z') -{ 0 }-> leq#2(z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z0 >= 0, z' = z0 leq#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, 0)) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z2, z0), leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z2, z0), 0)) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(0, leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(0, 0)) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(#eq(z2, z0), leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(#eq(z2, z0), 0)) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z'' = z1 leq#2(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 or(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 or(z, z') -{ 0 }-> #or(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 ---------------------------------------- (13) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #CKLT(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 2 :|: z = 3 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + #AND(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 OR(z, z') -{ 1 }-> 1 + #OR(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 and(z, z') -{ 0 }-> #and(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 or(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 or(z, z') -{ 0 }-> #or(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 #COMPARE(z, z') -{ 0 }-> 8 :|: z0 >= 0, z' = 1 + z0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z0 >= 0, z' = 1 + z0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z = 1 + z0, z0 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #COMPARE(z, z') -{ 0 }-> 3 :|: z = 1 + z0, z0 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #COMPARE(z, z') -{ 0 }-> 1 :|: z = 1 + z0, z0 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z0 >= 0, z' = 1 + z0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z1, z0) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z = 1 + z0, z0 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 6 :|: z = 1 + z0, z0 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 4 :|: z = 1 + z0, z0 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z0 >= 0, z' = 1 + z0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z0 >= 0, z' = 1 + z0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z0 >= 0, z' = 1 + z0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + z0'') :|: z' = 1 + z0'', z0'' >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + z01) :|: z01 >= 0, z' = 1 + z01, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + z02, 0) :|: z = 1 + z02, z02 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + z04, 1 + z1'') :|: z04 >= 0, z' = 1 + z1'', z = 1 + z04, z1'' >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + z0') :|: z0' >= 0, z = 0, z' = 1 + z0', 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + z05, 0) :|: z05 >= 0, z = 1 + z05, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + z06, 1 + z11) :|: z' = 1 + z11, z11 >= 0, z06 >= 0, z = 1 + z06, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + z08, 0) :|: z08 >= 0, z = 1 + z08, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + z0') :|: z0' >= 0, z = 0, z' = 1 + z0', v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + z0'') :|: z' = 1 + z0'', z0'' >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + z01) :|: z01 >= 0, z' = 1 + z01, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + z02, 0) :|: z = 1 + z02, z02 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + z04, 1 + z1'') :|: z04 >= 0, z' = 1 + z1'', z = 1 + z04, z1'' >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + z05, 0) :|: z05 >= 0, z = 1 + z05, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + z06, 1 + z11) :|: z' = 1 + z11, z11 >= 0, z06 >= 0, z = 1 + z06, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + z08, 0) :|: z08 >= 0, z = 1 + z08, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z07, z12)) + #COMPARE(1 + z07, 1 + z12) :|: z' = 1 + z12, z07 >= 0, z = 1 + z07, z12 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z09, z13)) + #COMPARE(1 + z09, 1 + z13) :|: z' = 1 + z13, z = 1 + z09, z09 >= 0, z13 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z1', z03)) + #COMPARE(1 + z03, 1 + z1') :|: z' = 1 + z1', z1' >= 0, z = 1 + z03, z03 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 #compare(z, z') -{ 0 }-> 3 :|: z0 >= 0, z' = 1 + z0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z = 1 + z0, z0 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #compare(z, z') -{ 0 }-> 2 :|: z0 >= 0, z' = 1 + z0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z = 1 + z0, z0 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #compare(z, z') -{ 0 }-> #compare(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #compare(z, z') -{ 0 }-> #compare(z1, z0) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z0 >= 0, z' = 1 + z0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1 + z0, z0 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #eq(z, z') -{ 0 }-> #eq(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #equal(z, z') -{ 0 }-> #eq(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' = 1 + z0767, z0767 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z' = 1 + z0768, z0768 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z0769 >= 0, z = 1 + z0769, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z = 1 + z0771, z0771 >= 0, z1437 >= 0, z' = 1 + z1437, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 1 + z0766, z0766 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z = 1 + z0772, z0772 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z = 1 + z0773, z' = 1 + z1438, z1438 >= 0, z0773 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z0775 >= 0, z = 1 + z0775, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 1 + z0766, z0766 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' = 1 + z0767, z0767 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z' = 1 + z0768, z0768 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z0769 >= 0, z = 1 + z0769, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 1 + z0771, z0771 >= 0, z1437 >= 0, z' = 1 + z1437, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 1 + z0772, z0772 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 1 + z0773, z' = 1 + z1438, z1438 >= 0, z0773 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z0775 >= 0, z = 1 + z0775, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z0774, z1439)) :|: z = 1 + z0774, z' = 1 + z1439, z1439 >= 0, z0774 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z0776, z1440)) :|: z' = 1 + z1440, z = 1 + z0776, z1440 >= 0, z0776 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z1436, z0770)) :|: z = 1 + z0770, z0770 >= 0, z' = 1 + z1436, z1436 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 AND(z, z') -{ 1 }-> 1 + 4 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z1 = 2, z0 = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 1, z1 = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, v0 >= 0, v1 >= 0, z0 = v0, z1 = v1 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z1, z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z0 >= 0, z' = z0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z2, z0), z2, z0, z1) + LEQ(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z2, z0, z1) + LEQ(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z0, z2) :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z0) :|: z = z0, z0 >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z0 >= 0, z' = z0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z'' = z1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z2, z0), leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z2, z0), 0)) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(0, leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(#eq(z2, z0), leq#1(z3, z1))) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), and(#eq(z2, z0), 0)) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), 0) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z2, z0)), #and(z0', z1')) + #LESS(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) + AND(#equal(z2, z0), leq(z3, z1)) + LEQ(z3, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) + AND(#equal(z2, z0), leq(z3, z1)) + #EQUAL(z2, z0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z1 = 2, z0 = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 1, z1 = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, v0 >= 0, v1 >= 0, z0 = v0, z1 = v1 and(z, z') -{ 0 }-> 2 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 2 and(z, z') -{ 0 }-> 1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z1 = 2, z0 = 1 and(z, z') -{ 0 }-> 1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 1 and(z, z') -{ 0 }-> 1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 1, z1 = 1 and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 and(z, z') -{ 0 }-> 0 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, v0 >= 0, v1 >= 0, z0 = v0, z1 = v1 insert(z, z') -{ 0 }-> insert#1(z1, z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 insert(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z2, z0), z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 insert#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 insert#1(z, z') -{ 0 }-> 1 + z0 + 1 :|: z = 1, z0 >= 0, z' = z0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z0 + (1 + z1 + z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z1 + insert(z0, z2) :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 isortlist(z) -{ 0 }-> isortlist#1(z0) :|: z = z0, z0 >= 0 isortlist(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 leq(z, z') -{ 0 }-> leq#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 leq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 leq#1(z, z') -{ 0 }-> leq#2(z2, z0, z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z0 >= 0, z' = z0 leq#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z2, z0), leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z2, z0), 0)) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(0, leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(#eq(z2, z0), leq#1(z3, z1))) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), and(#eq(z2, z0), 0)) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), 0) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z2, z0)), #and(z0', z1')) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z1 >= 0, z = 1, z0 >= 0, z' = z0, z'' = z1 leq#2(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' leq#2(z, z', z'') -{ 0 }-> #or(z0', z1') :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 or(z, z') -{ 0 }-> 2 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z1 = 2, z0 = 1 or(z, z') -{ 0 }-> 2 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 1 or(z, z') -{ 0 }-> 2 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 2, z1 = 2 or(z, z') -{ 0 }-> 1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, z0 = 1, z1 = 1 or(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 or(z, z') -{ 0 }-> 0 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0, v0 >= 0, v1 >= 0, z0 = v0, z1 = v1 ---------------------------------------- (15) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' leq#2(z, z', z'') -{ 0 }-> #or(z0', z1') :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 ---------------------------------------- (17) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { #or } { #and } { and } { #cklt } { or } { OR } { #compare } { AND } { #CKLT } { #COMPARE } { #AND } { #OR } { #eq } { #less } { #LESS } { leq#1, leq#2 } { #EQ' } { #equal } { leq } { insert#2, insert, insert#1 } { #EQUAL } { LEQ, LEQ#1, LEQ#2 } { isortlist#1 } { INSERT#1, INSERT#2, INSERT } { isortlist } { ISORTLIST#1, ISORTLIST } ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' leq#2(z, z', z'') -{ 0 }-> #or(z0', z1') :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#or}, {#and}, {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} ---------------------------------------- (19) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' leq#2(z, z', z'') -{ 0 }-> #or(z0', z1') :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#or}, {#and}, {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} ---------------------------------------- (21) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #or after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' leq#2(z, z', z'') -{ 0 }-> #or(z0', z1') :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#or}, {#and}, {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: ?, size: O(1) [2] ---------------------------------------- (23) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #or after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' leq#2(z, z', z'') -{ 0 }-> #or(z0', z1') :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#and}, {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (25) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#and}, {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (27) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #and after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#and}, {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: ?, size: O(1) [2] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #and after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), #and(z0', z1')) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), #and(z0', z1')) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (31) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (33) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: and after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {and}, {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: ?, size: O(1) [2] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: and after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (37) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (39) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #cklt after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#cklt}, {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: ?, size: O(1) [2] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #cklt after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (43) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (45) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: or after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {or}, {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: ?, size: O(1) [2] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: or after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, s1) :|: s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (49) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (51) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: OR after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 5 ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {OR}, {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: ?, size: O(1) [5] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: OR after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, s') + #LESS(z', z0) :|: s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] ---------------------------------------- (55) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] ---------------------------------------- (57) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #compare after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 3 ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#compare}, {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: ?, size: O(1) [3] ---------------------------------------- (59) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #compare after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z - 1, z' - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(#compare(z' - 1, z - 1)) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #compare(z, z') -{ 0 }-> #compare(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> #compare(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #less(z, z') -{ 0 }-> #cklt(#compare(z - 1, z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> #cklt(#compare(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), s'') + #LESS(z', z0) :|: s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#cklt(#compare(z', z0)), 0) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), s2) :|: s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(#cklt(#compare(z', z0)), 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] ---------------------------------------- (61) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s8) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s9) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] ---------------------------------------- (63) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: AND after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 5 ---------------------------------------- (64) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s8) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s9) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {AND}, {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: ?, size: O(1) [5] ---------------------------------------- (65) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: AND after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (66) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s8) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s9) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] ---------------------------------------- (67) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (68) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s8) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s9) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] ---------------------------------------- (69) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #CKLT after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 3 ---------------------------------------- (70) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s8) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s9) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#CKLT}, {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: ?, size: O(1) [3] ---------------------------------------- (71) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #CKLT after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (72) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s8) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + #CKLT(s9) + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] ---------------------------------------- (73) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (74) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] ---------------------------------------- (75) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #COMPARE after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 9 + z + z' ---------------------------------------- (76) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#COMPARE}, {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: ?, size: O(n^1) [9 + z + z'] ---------------------------------------- (77) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #COMPARE after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (78) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + #COMPARE(z' - 1, z - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + #COMPARE(0, 0) :|: z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(z, z') :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 0) :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(0, 1 + (z' - 1)) :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 0) :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + #COMPARE(1 + (z - 1), 1 + (z' - 1)) :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] ---------------------------------------- (79) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (80) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] ---------------------------------------- (81) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #AND after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 4 ---------------------------------------- (82) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#AND}, {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: ?, size: O(1) [4] ---------------------------------------- (83) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #AND after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (84) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] ---------------------------------------- (85) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (86) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] ---------------------------------------- (87) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #OR after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 4 ---------------------------------------- (88) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#OR}, {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: ?, size: O(1) [4] ---------------------------------------- (89) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #OR after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (90) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] ---------------------------------------- (91) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (92) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] ---------------------------------------- (93) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #eq after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (94) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#eq}, {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: ?, size: O(1) [2] ---------------------------------------- (95) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #eq after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (96) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + #AND(#eq(z0, z2), #eq(z1, z3)) + #EQ'(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> #eq(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> #eq(z, z') :|: z' >= 0, z >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s17, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(#eq(z', z0), 0)) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(#eq(z', z0), leq#1(z'', z1))) :|: s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s29, and(#eq(z', z0), 0)) :|: s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(#eq(z', z0), 0)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (97) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (98) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s73 + #LESS(z', z0) :|: s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s77 + #LESS(z', z0) :|: s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + #LESS(z', z0) :|: s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + #LESS(z', z0) :|: s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (99) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #less after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (100) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s73 + #LESS(z', z0) :|: s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s77 + #LESS(z', z0) :|: s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + #LESS(z', z0) :|: s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + #LESS(z', z0) :|: s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#less}, {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: ?, size: O(1) [2] ---------------------------------------- (101) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #less after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (102) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s73 + #LESS(z', z0) :|: s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s77 + #LESS(z', z0) :|: s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + #LESS(z', z0) :|: s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + #LESS(z', z0) :|: s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(#less(z', z0), and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (103) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (104) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s73 + #LESS(z', z0) :|: s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s77 + #LESS(z', z0) :|: s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + #LESS(z', z0) :|: s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + #LESS(z', z0) :|: s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (105) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #LESS after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 13 + z + z' ---------------------------------------- (106) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s73 + #LESS(z', z0) :|: s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s77 + #LESS(z', z0) :|: s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + #LESS(z', z0) :|: s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + #LESS(z', z0) :|: s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#LESS}, {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: ?, size: O(n^1) [13 + z + z'] ---------------------------------------- (107) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #LESS after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (108) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s22 + #LESS(z', z0) :|: s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s25 + #LESS(z', z0) :|: s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s4 + #LESS(z', z0) :|: s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 2 }-> 1 + s5 + #LESS(z', z0) :|: s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s73 + #LESS(z', z0) :|: s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + s77 + #LESS(z', z0) :|: s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + #LESS(z', z0) :|: s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + #LESS(z', z0) :|: s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + #LESS(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] ---------------------------------------- (109) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (110) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + s93 :|: s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + s95 :|: s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + s88 :|: s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + s90 :|: s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] ---------------------------------------- (111) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: leq#1 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 Computed SIZE bound using CoFloCo for: leq#2 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (112) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + s93 :|: s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + s95 :|: s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + s88 :|: s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + s90 :|: s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {leq#1,leq#2}, {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: ?, size: O(1) [2] leq#2: runtime: ?, size: O(1) [2] ---------------------------------------- (113) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: leq#1 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 Computed RUNTIME bound using CoFloCo for: leq#2 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (114) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(leq#1(z', z0), z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(s15, and(s74, leq#1(z'', z1))) + s93 :|: s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(s19, and(0, leq#1(z'', z1))) + s95 :|: s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(0, and(s70, leq#1(z'', z1))) + s88 :|: s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 2 }-> 1 + OR(0, and(0, leq#1(z'', z1))) + s90 :|: s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(leq#1(z', z0), z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> leq#1(z, z') :|: z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> leq#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s27, and(s82, leq#1(z'', z1))) :|: s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(s31, and(0, leq#1(z'', z1))) :|: s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(s78, leq#1(z'', z1))) :|: s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> or(0, and(0, leq#1(z'', z1))) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (115) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (116) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (117) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #EQ' after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 11 + 5*z' ---------------------------------------- (118) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#EQ'}, {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: ?, size: O(n^1) [11 + 5*z'] ---------------------------------------- (119) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #EQ' after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (120) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + #EQ'(z - 1, z' - 1) :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + #EQ'(z0, z2) :|: s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + #EQ'(z1, z3) :|: s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ'(z, z') :|: z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] ---------------------------------------- (121) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (122) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] ---------------------------------------- (123) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #equal after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (124) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#equal}, {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: ?, size: O(1) [2] ---------------------------------------- (125) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #equal after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (126) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + #EQUAL(z', z0) :|: s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(#equal(z', z0), leq(z'', z1))) + AND(#equal(z', z0), leq(z'', z1)) + LEQ(z'', z1) :|: s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (127) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (128) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(s130, leq(z'', z1))) + AND(s131, leq(z'', z1)) + #EQUAL(z', z0) :|: s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(s132, leq(z'', z1))) + AND(s133, leq(z'', z1)) + LEQ(z'', z1) :|: s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (129) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: leq after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (130) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(s130, leq(z'', z1))) + AND(s131, leq(z'', z1)) + #EQUAL(z', z0) :|: s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(s132, leq(z'', z1))) + AND(s133, leq(z'', z1)) + LEQ(z'', z1) :|: s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {leq}, {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: ?, size: O(1) [2] ---------------------------------------- (131) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: leq after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (132) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s86, and(s130, leq(z'', z1))) + AND(s131, leq(z'', z1)) + #EQUAL(z', z0) :|: s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 1 + OR(s87, and(s132, leq(z'', z1))) + AND(s133, leq(z'', z1)) + LEQ(z'', z1) :|: s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (133) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (134) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s136 + s138 + #EQUAL(z', z0) :|: s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (135) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: insert#2 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3 + z' + z'' + z4 Computed SIZE bound using CoFloCo for: insert after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + z + z' Computed SIZE bound using CoFloCo for: insert#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + z + z' ---------------------------------------- (136) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s136 + s138 + #EQUAL(z', z0) :|: s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {insert#2,insert,insert#1}, {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: ?, size: O(n^1) [3 + z' + z'' + z4] insert: runtime: ?, size: O(n^1) [2 + z + z'] insert#1: runtime: ?, size: O(n^1) [2 + z + z'] ---------------------------------------- (137) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: insert#2 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 Computed RUNTIME bound using CoFloCo for: insert after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 Computed RUNTIME bound using CoFloCo for: insert#1 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (138) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s136 + s138 + #EQUAL(z', z0) :|: s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> insert#1(z', z) :|: z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(s99, z', z0, z1) :|: s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> insert#2(0, z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + insert(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, 0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] ---------------------------------------- (139) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (140) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s136 + s138 + #EQUAL(z', z0) :|: s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] ---------------------------------------- (141) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: #EQUAL after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 12 + 5*z' ---------------------------------------- (142) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s136 + s138 + #EQUAL(z', z0) :|: s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {#EQUAL}, {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: ?, size: O(n^1) [12 + 5*z'] ---------------------------------------- (143) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: #EQUAL after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (144) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s136 + s138 + #EQUAL(z', z0) :|: s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] ---------------------------------------- (145) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (146) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] ---------------------------------------- (147) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: LEQ after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 12 + 8*z + 5*z' Computed SIZE bound using KoAT for: LEQ#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 11 + 8*z + 5*z' Computed SIZE bound using CoFloCo for: LEQ#2 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 18 + 5*z + z' + 8*z'' ---------------------------------------- (148) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {LEQ,LEQ#1,LEQ#2}, {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: ?, size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: ?, size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: ?, size: O(n^1) [18 + 5*z + z' + 8*z''] ---------------------------------------- (149) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: LEQ after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 11 + 5*z' Computed RUNTIME bound using CoFloCo for: LEQ#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 10 + 5*z' Computed RUNTIME bound using CoFloCo for: LEQ#2 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 9 + 5*z ---------------------------------------- (150) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(s98, z', z0, z1) + LEQ(z', z0) :|: s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 1 }-> 1 + INSERT#2(0, z', z0, z1) + LEQ(z', z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 1 }-> 1 + LEQ#1(z, z') :|: z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 1 }-> 1 + LEQ#2(z', z0, z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s141 + s143 + LEQ(z'', z1) :|: s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] ---------------------------------------- (151) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (152) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(s98, z', z0, z1) + s150 :|: s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(0, z', z0, z1) + s151 :|: s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] ---------------------------------------- (153) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: isortlist#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2*z ---------------------------------------- (154) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(s98, z', z0, z1) + s150 :|: s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(0, z', z0, z1) + s151 :|: s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {isortlist#1}, {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: ?, size: O(n^1) [2*z] ---------------------------------------- (155) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: isortlist#1 after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (156) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(s98, z', z0, z1) + s150 :|: s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(0, z', z0, z1) + s151 :|: s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, isortlist#1(z1)) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> isortlist#1(z) :|: z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> insert(z0, isortlist#1(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] ---------------------------------------- (157) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (158) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(s98, z', z0, z1) + s150 :|: s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(0, z', z0, z1) + s151 :|: s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, s155) + ISORTLIST(z1) :|: s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] ---------------------------------------- (159) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: INSERT#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 20*z + 120*z*z' + 120*z^2 Computed SIZE bound using KoAT for: INSERT#2 after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 2 + 120*z'*z4 + 20*z4 + 120*z4^2 Computed SIZE bound using KoAT for: INSERT after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 1 + 120*z*z' + 20*z' + 120*z'^2 ---------------------------------------- (160) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(s98, z', z0, z1) + s150 :|: s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(0, z', z0, z1) + s151 :|: s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, s155) + ISORTLIST(z1) :|: s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {INSERT#1,INSERT#2,INSERT}, {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: ?, size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: ?, size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: ?, size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] ---------------------------------------- (161) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: INSERT#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 99 + 70*z Computed RUNTIME bound using CoFloCo for: INSERT#2 after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 101 + 70*z4 Computed RUNTIME bound using CoFloCo for: INSERT after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 100 + 70*z' ---------------------------------------- (162) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 1 }-> 1 + INSERT#1(z', z) :|: z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(s98, z', z0, z1) + s150 :|: s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 12 + 5*z0 }-> 1 + INSERT#2(0, z', z0, z1) + s151 :|: s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 1 + INSERT(z', z4) :|: z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, s155) + ISORTLIST(z1) :|: s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 1 }-> 1 + INSERT(z0, 0) + ISORTLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] ---------------------------------------- (163) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (164) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 100 + 70*z' }-> 1 + s159 :|: s159 >= 0, s159 <= 120 * (z * z') + 120 * (z' * z') + 20 * z', z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s160 + s150 :|: s160 >= 0, s160 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s161 + s151 :|: s161 >= 0, s161 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 101 + 70*z4 }-> 1 + s162 :|: s162 >= 0, s162 <= 120 * (z4 * z') + 20 * z4 + 120 * (z4 * z4) + 1, z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 101 + 70*s155 }-> 1 + s163 + ISORTLIST(z1) :|: s163 >= 0, s163 <= 120 * (s155 * z0) + 20 * s155 + 120 * (s155 * s155) + 1, s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 101 }-> 1 + s164 + ISORTLIST(z1) :|: s164 >= 0, s164 <= 120 * (0 * z0) + 20 * 0 + 120 * (0 * 0) + 1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] ---------------------------------------- (165) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: isortlist after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2*z ---------------------------------------- (166) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 100 + 70*z' }-> 1 + s159 :|: s159 >= 0, s159 <= 120 * (z * z') + 120 * (z' * z') + 20 * z', z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s160 + s150 :|: s160 >= 0, s160 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s161 + s151 :|: s161 >= 0, s161 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 101 + 70*z4 }-> 1 + s162 :|: s162 >= 0, s162 <= 120 * (z4 * z') + 20 * z4 + 120 * (z4 * z4) + 1, z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 101 + 70*s155 }-> 1 + s163 + ISORTLIST(z1) :|: s163 >= 0, s163 <= 120 * (s155 * z0) + 20 * s155 + 120 * (s155 * s155) + 1, s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 101 }-> 1 + s164 + ISORTLIST(z1) :|: s164 >= 0, s164 <= 120 * (0 * z0) + 20 * 0 + 120 * (0 * 0) + 1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {isortlist}, {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] isortlist: runtime: ?, size: O(n^1) [2*z] ---------------------------------------- (167) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: isortlist after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (168) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 100 + 70*z' }-> 1 + s159 :|: s159 >= 0, s159 <= 120 * (z * z') + 120 * (z' * z') + 20 * z', z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s160 + s150 :|: s160 >= 0, s160 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s161 + s151 :|: s161 >= 0, s161 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 101 + 70*z4 }-> 1 + s162 :|: s162 >= 0, s162 <= 120 * (z4 * z') + 20 * z4 + 120 * (z4 * z4) + 1, z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 101 + 70*s155 }-> 1 + s163 + ISORTLIST(z1) :|: s163 >= 0, s163 <= 120 * (s155 * z0) + 20 * s155 + 120 * (s155 * s155) + 1, s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 101 }-> 1 + s164 + ISORTLIST(z1) :|: s164 >= 0, s164 <= 120 * (0 * z0) + 20 * 0 + 120 * (0 * 0) + 1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] isortlist: runtime: O(1) [0], size: O(n^1) [2*z] ---------------------------------------- (169) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (170) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 100 + 70*z' }-> 1 + s159 :|: s159 >= 0, s159 <= 120 * (z * z') + 120 * (z' * z') + 20 * z', z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s160 + s150 :|: s160 >= 0, s160 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s161 + s151 :|: s161 >= 0, s161 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 101 + 70*z4 }-> 1 + s162 :|: s162 >= 0, s162 <= 120 * (z4 * z') + 20 * z4 + 120 * (z4 * z4) + 1, z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 101 + 70*s155 }-> 1 + s163 + ISORTLIST(z1) :|: s163 >= 0, s163 <= 120 * (s155 * z0) + 20 * s155 + 120 * (s155 * s155) + 1, s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 101 }-> 1 + s164 + ISORTLIST(z1) :|: s164 >= 0, s164 <= 120 * (0 * z0) + 20 * 0 + 120 * (0 * 0) + 1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] isortlist: runtime: O(1) [0], size: O(n^1) [2*z] ---------------------------------------- (171) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: ISORTLIST#1 after applying outer abstraction to obtain an ITS, resulting in: INF with polynomial bound: ? Computed SIZE bound using CoFloCo for: ISORTLIST after applying outer abstraction to obtain an ITS, resulting in: INF with polynomial bound: ? ---------------------------------------- (172) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 100 + 70*z' }-> 1 + s159 :|: s159 >= 0, s159 <= 120 * (z * z') + 120 * (z' * z') + 20 * z', z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s160 + s150 :|: s160 >= 0, s160 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s161 + s151 :|: s161 >= 0, s161 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 101 + 70*z4 }-> 1 + s162 :|: s162 >= 0, s162 <= 120 * (z4 * z') + 20 * z4 + 120 * (z4 * z4) + 1, z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 101 + 70*s155 }-> 1 + s163 + ISORTLIST(z1) :|: s163 >= 0, s163 <= 120 * (s155 * z0) + 20 * s155 + 120 * (s155 * s155) + 1, s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 101 }-> 1 + s164 + ISORTLIST(z1) :|: s164 >= 0, s164 <= 120 * (0 * z0) + 20 * 0 + 120 * (0 * 0) + 1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: {ISORTLIST#1,ISORTLIST} Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] isortlist: runtime: O(1) [0], size: O(n^1) [2*z] ISORTLIST#1: runtime: ?, size: INF ISORTLIST: runtime: ?, size: INF ---------------------------------------- (173) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: ISORTLIST#1 after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 1 + 406*z + 280*z^2 Computed RUNTIME bound using KoAT for: ISORTLIST after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 2 + 406*z + 280*z^2 ---------------------------------------- (174) Obligation: Complexity RNTS consisting of the following rules: #AND(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #AND(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #AND(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #AND(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #AND(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #CKLT(z) -{ 0 }-> 3 :|: z = 3 #CKLT(z) -{ 0 }-> 2 :|: z = 2 #CKLT(z) -{ 0 }-> 1 :|: z = 1 #CKLT(z) -{ 0 }-> 0 :|: z >= 0 #COMPARE(z, z') -{ 0 }-> 8 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 6 :|: z = 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 5 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 4 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0 #COMPARE(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s40 :|: s40 >= 0, s40 <= z' - 1 + (z - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #COMPARE(z, z') -{ 0 }-> 1 + s41 :|: s41 >= 0, s41 <= z - 1 + (z' - 1) + 9, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 9 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #EQ'(z, z') -{ 0 }-> 8 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 7 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 6 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 5 :|: z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 4 :|: z - 1 >= 0, z' = 0 #EQ'(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 11 :|: z = 1, z' = 1 #EQ'(z, z') -{ 0 }-> 10 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #EQ'(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0 #EQ'(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #EQ'(z, z') -{ 0 }-> 1 + s127 :|: s127 >= 0, s127 <= 5 * (z' - 1) + 11, z' - 1 >= 0, z - 1 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s63 + s128 :|: s128 >= 0, s128 <= 5 * z2 + 11, s61 >= 0, s61 <= 2, s62 >= 0, s62 <= 2, s63 >= 0, s63 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ'(z, z') -{ 0 }-> 1 + s66 + s129 :|: s129 >= 0, s129 <= 5 * z3 + 11, s64 >= 0, s64 <= 2, s65 >= 0, s65 <= 2, s66 >= 0, s66 <= 4, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + s126 :|: s126 >= 0, s126 <= 5 * z' + 11, z' >= 0, z >= 0 #LESS(z, z') -{ 1 }-> 1 + s38 + s50 :|: s50 >= 0, s50 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s38 >= 0, s38 <= 3, s8 >= 0, s8 <= 3, z' - 1 >= 0, z - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + s39 + s57 :|: s57 >= 0, s57 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, s39 >= 0, s39 <= 3, s9 >= 0, s9 <= 3, z - 1 >= 0, z' - 1 >= 0 #LESS(z, z') -{ 1 }-> 1 + 3 + s47 :|: s47 >= 0, s47 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s49 :|: s49 >= 0, s49 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 3 + s52 :|: s52 >= 0, s52 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, 3 = 3 #LESS(z, z') -{ 1 }-> 1 + 2 + s45 :|: s45 >= 0, s45 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s54 :|: s54 >= 0, s54 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 2 + s56 :|: s56 >= 0, s56 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, 2 = 2 #LESS(z, z') -{ 1 }-> 1 + 1 + s43 :|: s43 >= 0, s43 <= 0 + 0 + 9, z = 0, z' = 0, 1 = 1 #LESS(z, z') -{ 1 }-> 1 + 0 + s42 :|: s42 >= 0, s42 <= 0 + 0 + 9, z = 0, z' = 0, v0 >= 0, 1 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s44 :|: s44 >= 0, s44 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s46 :|: s46 >= 0, s46 <= 0 + (1 + (z' - 1)) + 9, z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s48 :|: s48 >= 0, s48 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s51 :|: s51 >= 0, s51 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s53 :|: s53 >= 0, s53 <= 1 + (z - 1) + 0 + 9, z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s55 :|: s55 >= 0, s55 <= 1 + (z - 1) + (1 + (z' - 1)) + 9, z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #LESS(z, z') -{ 1 }-> 1 + 0 + s58 :|: s58 >= 0, s58 <= z + z' + 9, z' >= 0, z >= 0, v0 >= 0, 0 = v0 #OR(z, z') -{ 0 }-> 4 :|: z = 2, z' = 2 #OR(z, z') -{ 0 }-> 3 :|: z = 2, z' = 1 #OR(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #OR(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #OR(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #cklt(z) -{ 0 }-> 2 :|: z = 3 #cklt(z) -{ 0 }-> 1 :|: z = 1 #cklt(z) -{ 0 }-> 1 :|: z = 2 #cklt(z) -{ 0 }-> 0 :|: z >= 0 #compare(z, z') -{ 0 }-> s6 :|: s6 >= 0, s6 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> s7 :|: s7 >= 0, s7 <= 3, z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 3 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 3 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0 #compare(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0 #compare(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z - 1 >= 0 #compare(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 #compare(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #eq(z, z') -{ 0 }-> s59 :|: s59 >= 0, s59 <= 2, z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> s69 :|: s67 >= 0, s67 <= 2, s68 >= 0, s68 <= 2, s69 >= 0, s69 <= 2, z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #equal(z, z') -{ 0 }-> s60 :|: s60 >= 0, s60 <= 2, z' >= 0, z >= 0 #equal(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> s11 :|: s10 >= 0, s10 <= 3, s11 >= 0, s11 <= 2, z - 1 >= 0, z' - 1 >= 0 #less(z, z') -{ 0 }-> s13 :|: s12 >= 0, s12 <= 3, s13 >= 0, s13 <= 2, z' - 1 >= 0, z - 1 >= 0 #less(z, z') -{ 0 }-> 2 :|: z' - 1 >= 0, z = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' = 0, 3 = 3 #less(z, z') -{ 0 }-> 2 :|: z - 1 >= 0, z' - 1 >= 0, 3 = 3 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0, 1 = 1 #less(z, z') -{ 0 }-> 1 :|: z = 0, z' - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z - 1 >= 0, z' = 0, 2 = 2 #less(z, z') -{ 0 }-> 1 :|: z' - 1 >= 0, z - 1 >= 0, 2 = 2 #less(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' = 0, v0 >= 0, 1 = v0 #less(z, z') -{ 0 }-> 0 :|: z = 0, z' - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' - 1 >= 0, v0 >= 0, 3 = v0 #less(z, z') -{ 0 }-> 0 :|: z - 1 >= 0, z' = 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' - 1 >= 0, z - 1 >= 0, v0 >= 0, 2 = v0 #less(z, z') -{ 0 }-> 0 :|: z' >= 0, z >= 0, v0 >= 0, 0 = v0 #or(z, z') -{ 0 }-> 2 :|: z' = 2, z = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 1 #or(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #or(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 AND(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 AND(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 AND(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 AND(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 AND(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 INSERT(z, z') -{ 100 + 70*z' }-> 1 + s159 :|: s159 >= 0, s159 <= 120 * (z * z') + 120 * (z' * z') + 20 * z', z' >= 0, z >= 0 INSERT#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s160 + s150 :|: s160 >= 0, s160 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s150 >= 0, s150 <= 8 * z' + 5 * z0 + 12, s98 >= 0, s98 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#1(z, z') -{ 113 + 5*z0 + 70*z1 }-> 1 + s161 + s151 :|: s161 >= 0, s161 <= 120 * (z1 * z') + 20 * z1 + 120 * (z1 * z1) + 2, s151 >= 0, s151 <= 8 * z' + 5 * z0 + 12, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 INSERT#2(z, z', z'', z4) -{ 1 }-> 0 :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 INSERT#2(z, z', z'', z4) -{ 101 + 70*z4 }-> 1 + s162 :|: s162 >= 0, s162 <= 120 * (z4 * z') + 20 * z4 + 120 * (z4 * z4) + 1, z'' >= 0, z = 1, z' >= 0, z4 >= 0 ISORTLIST(z) -{ 1 }-> 1 + ISORTLIST#1(z) :|: z >= 0 ISORTLIST#1(z) -{ 1 }-> 0 :|: z = 1 ISORTLIST#1(z) -{ 101 + 70*s155 }-> 1 + s163 + ISORTLIST(z1) :|: s163 >= 0, s163 <= 120 * (s155 * z0) + 20 * s155 + 120 * (s155 * s155) + 1, s155 >= 0, s155 <= 2 * z1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ISORTLIST#1(z) -{ 101 }-> 1 + s164 + ISORTLIST(z1) :|: s164 >= 0, s164 <= 120 * (0 * z0) + 20 * 0 + 120 * (0 * 0) + 1, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 LEQ(z, z') -{ 11 + 5*z' }-> 1 + s152 :|: s152 >= 0, s152 <= 8 * z + 5 * z' + 11, z' >= 0, z >= 0 LEQ#1(z, z') -{ 1 }-> 0 :|: z = 1, z' >= 0 LEQ#1(z, z') -{ 10 + 5*z' }-> 1 + s153 :|: s153 >= 0, s153 <= 5 * z' + 8 * z1 + 18 + z0, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 LEQ#2(z, z', z'') -{ 1 }-> 0 :|: z'' >= 0, z = 1, z' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s104 + s88 :|: s102 >= 0, s102 <= 2, s103 >= 0, s103 <= 2, s104 >= 0, s104 <= 5, s88 >= 0, s88 <= z' + z0 + 13, s70 >= 0, s70 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s107 + s90 :|: s105 >= 0, s105 <= 2, s106 >= 0, s106 <= 2, s107 >= 0, s107 <= 5, s90 >= 0, s90 <= z' + z0 + 13, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s110 + s93 :|: s108 >= 0, s108 <= 2, s109 >= 0, s109 <= 2, s110 >= 0, s110 <= 5, s93 >= 0, s93 <= z' + z0 + 13, s74 >= 0, s74 <= 2, s14 >= 0, s14 <= 3, s15 >= 0, s15 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s113 + s95 :|: s111 >= 0, s111 <= 2, s112 >= 0, s112 <= 2, s113 >= 0, s113 <= 5, s95 >= 0, s95 <= z' + z0 + 13, s18 >= 0, s18 <= 3, s19 >= 0, s19 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s22 + s96 :|: s96 >= 0, s96 <= z' + z0 + 13, s20 >= 0, s20 <= 3, s21 >= 0, s21 <= 2, s22 >= 0, s22 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s25 + s97 :|: s97 >= 0, s97 <= z' + z0 + 13, s23 >= 0, s23 <= 3, s24 >= 0, s24 <= 2, s25 >= 0, s25 <= 5, s'' >= 0, s'' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s4 + s91 :|: s91 >= 0, s91 <= z' + z0 + 13, s4 >= 0, s4 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 LEQ#2(z, z', z'') -{ 3 }-> 1 + s5 + s92 :|: s92 >= 0, s92 <= z' + z0 + 13, s5 >= 0, s5 <= 5, s' >= 0, s' <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s73 + s89 :|: s89 >= 0, s89 <= z' + z0 + 13, s71 >= 0, s71 <= 2, s72 >= 0, s72 <= 2, s73 >= 0, s73 <= 5, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 3 }-> 1 + s77 + s94 :|: s94 >= 0, s94 <= z' + z0 + 13, s75 >= 0, s75 <= 2, s76 >= 0, s76 <= 2, s77 >= 0, s77 <= 5, s16 >= 0, s16 <= 3, s17 >= 0, s17 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 4 }-> 1 + s136 + s138 + s149 :|: s149 >= 0, s149 <= 5 * z0 + 12, s134 >= 0, s134 <= 2, s135 >= 0, s135 <= 2, s136 >= 0, s136 <= 5, s137 >= 0, s137 <= 2, s138 >= 0, s138 <= 5, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= 2, s86 >= 0, s86 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 LEQ#2(z, z', z'') -{ 14 + 5*z1 }-> 1 + s141 + s143 + s154 :|: s154 >= 0, s154 <= 8 * z'' + 5 * z1 + 12, s139 >= 0, s139 <= 2, s140 >= 0, s140 <= 2, s141 >= 0, s141 <= 5, s142 >= 0, s142 <= 2, s143 >= 0, s143 <= 5, s132 >= 0, s132 <= 2, s133 >= 0, s133 <= 2, s87 >= 0, s87 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 OR(z, z') -{ 1 }-> 1 + 4 :|: z' >= 0, z >= 0, z = 2, z' = 2 OR(z, z') -{ 1 }-> 1 + 3 :|: z' >= 0, z >= 0, z = 2, z' = 1 OR(z, z') -{ 1 }-> 1 + 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 OR(z, z') -{ 1 }-> 1 + 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 OR(z, z') -{ 1 }-> 1 + 0 :|: z' >= 0, z >= 0 and(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z' = 2, z = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 2, z' = 1 and(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 and(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert(z, z') -{ 0 }-> s144 :|: s144 >= 0, s144 <= z' + z + 2, z' >= 0, z >= 0 insert(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> s145 :|: s145 >= 0, s145 <= z' + z0 + z1 + 3, s99 >= 0, s99 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> s146 :|: s146 >= 0, s146 <= z' + z0 + z1 + 3, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 insert#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 insert#1(z, z') -{ 0 }-> 1 + z' + 1 :|: z = 1, z' >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z' + (1 + z'' + z4) :|: z = 2, z'' >= 0, z' >= 0, z4 >= 0 insert#2(z, z', z'', z4) -{ 0 }-> 1 + z'' + s147 :|: s147 >= 0, s147 <= z' + z4 + 2, z'' >= 0, z = 1, z' >= 0, z4 >= 0 isortlist(z) -{ 0 }-> s156 :|: s156 >= 0, s156 <= 2 * z, z >= 0 isortlist(z) -{ 0 }-> 0 :|: z >= 0 isortlist#1(z) -{ 0 }-> s148 :|: s148 >= 0, s148 <= z0 + 0 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> s158 :|: s157 >= 0, s157 <= 2 * z1, s158 >= 0, s158 <= z0 + s157 + 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1 isortlist#1(z) -{ 0 }-> 1 :|: z = 1 isortlist#1(z) -{ 0 }-> 0 :|: z >= 0 leq(z, z') -{ 0 }-> s100 :|: s100 >= 0, s100 <= 2, z' >= 0, z >= 0 leq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#1(z, z') -{ 0 }-> s101 :|: s101 >= 0, s101 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0 leq#1(z, z') -{ 0 }-> 2 :|: z = 1, z' >= 0 leq#1(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 leq#2(z, z', z'') -{ 0 }-> s :|: s >= 0, s <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s116 :|: s114 >= 0, s114 <= 2, s115 >= 0, s115 <= 2, s116 >= 0, s116 <= 2, s78 >= 0, s78 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s119 :|: s117 >= 0, s117 <= 2, s118 >= 0, s118 <= 2, s119 >= 0, s119 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s122 :|: s120 >= 0, s120 <= 2, s121 >= 0, s121 <= 2, s122 >= 0, s122 <= 2, s82 >= 0, s82 <= 2, s26 >= 0, s26 <= 3, s27 >= 0, s27 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s125 :|: s123 >= 0, s123 <= 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= 2, s30 >= 0, s30 <= 3, s31 >= 0, s31 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s3 :|: s3 >= 0, s3 <= 2, s1 >= 0, s1 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s34 :|: s32 >= 0, s32 <= 3, s33 >= 0, s33 <= 2, s34 >= 0, s34 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1 leq#2(z, z', z'') -{ 0 }-> s37 :|: s35 >= 0, s35 <= 3, s36 >= 0, s36 <= 2, s37 >= 0, s37 <= 2, s2 >= 0, s2 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, 0 = z0', z1' >= 0, 0 = z1', z0' >= 0 leq#2(z, z', z'') -{ 0 }-> s81 :|: s79 >= 0, s79 <= 2, s80 >= 0, s80 <= 2, s81 >= 0, s81 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> s85 :|: s83 >= 0, s83 <= 2, s84 >= 0, s84 <= 2, s85 >= 0, s85 <= 2, s28 >= 0, s28 <= 3, s29 >= 0, s29 <= 2, z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 1 :|: z'' >= 0, z = 1, z' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 leq#2(z, z', z'') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v0, 0 = v1, v0' >= 0, v1' >= 0, 0 = v0', 0 = v1' or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z' = 2, z = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 1 or(z, z') -{ 0 }-> 2 :|: z' >= 0, z >= 0, z = 2, z' = 2 or(z, z') -{ 0 }-> 1 :|: z' >= 0, z >= 0, z = 1, z' = 1 or(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 Function symbols to be analyzed: Previous analysis results are: #or: runtime: O(1) [0], size: O(1) [2] #and: runtime: O(1) [0], size: O(1) [2] and: runtime: O(1) [0], size: O(1) [2] #cklt: runtime: O(1) [0], size: O(1) [2] or: runtime: O(1) [0], size: O(1) [2] OR: runtime: O(1) [1], size: O(1) [5] #compare: runtime: O(1) [0], size: O(1) [3] AND: runtime: O(1) [1], size: O(1) [5] #CKLT: runtime: O(1) [0], size: O(1) [3] #COMPARE: runtime: O(1) [0], size: O(n^1) [9 + z + z'] #AND: runtime: O(1) [0], size: O(1) [4] #OR: runtime: O(1) [0], size: O(1) [4] #eq: runtime: O(1) [0], size: O(1) [2] #less: runtime: O(1) [0], size: O(1) [2] #LESS: runtime: O(1) [1], size: O(n^1) [13 + z + z'] leq#1: runtime: O(1) [0], size: O(1) [2] leq#2: runtime: O(1) [0], size: O(1) [2] #EQ': runtime: O(1) [0], size: O(n^1) [11 + 5*z'] #equal: runtime: O(1) [0], size: O(1) [2] leq: runtime: O(1) [0], size: O(1) [2] insert#2: runtime: O(1) [0], size: O(n^1) [3 + z' + z'' + z4] insert: runtime: O(1) [0], size: O(n^1) [2 + z + z'] insert#1: runtime: O(1) [0], size: O(n^1) [2 + z + z'] #EQUAL: runtime: O(1) [1], size: O(n^1) [12 + 5*z'] LEQ: runtime: O(n^1) [11 + 5*z'], size: O(n^1) [12 + 8*z + 5*z'] LEQ#1: runtime: O(n^1) [10 + 5*z'], size: O(n^1) [11 + 8*z + 5*z'] LEQ#2: runtime: O(n^1) [9 + 5*z], size: O(n^1) [18 + 5*z + z' + 8*z''] isortlist#1: runtime: O(1) [0], size: O(n^1) [2*z] INSERT#1: runtime: O(n^1) [99 + 70*z], size: O(n^2) [20*z + 120*z*z' + 120*z^2] INSERT#2: runtime: O(n^1) [101 + 70*z4], size: O(n^2) [2 + 120*z'*z4 + 20*z4 + 120*z4^2] INSERT: runtime: O(n^1) [100 + 70*z'], size: O(n^2) [1 + 120*z*z' + 20*z' + 120*z'^2] isortlist: runtime: O(1) [0], size: O(n^1) [2*z] ISORTLIST#1: runtime: O(n^2) [1 + 406*z + 280*z^2], size: INF ISORTLIST: runtime: O(n^2) [2 + 406*z + 280*z^2], size: INF ---------------------------------------- (175) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (176) BOUNDS(1, n^2) ---------------------------------------- (177) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (178) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) AND(z0, z1) -> c42(#AND(z0, z1)) INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) INSERT#1(nil, z0) -> c45 INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) INSERT#2(#true, z0, z1, z2) -> c47 ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) ISORTLIST#1(nil) -> c50 LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) LEQ#1(nil, z0) -> c53 LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) LEQ#2(nil, z0, z1) -> c57 OR(z0, z1) -> c58(#OR(z0, z1)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #CKLT(#EQ) -> c4 #CKLT(#GT) -> c5 #CKLT(#LT) -> c6 #COMPARE(#0, #0) -> c7 #COMPARE(#0, #neg(z0)) -> c8 #COMPARE(#0, #pos(z0)) -> c9 #COMPARE(#0, #s(z0)) -> c10 #COMPARE(#neg(z0), #0) -> c11 #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) #COMPARE(#neg(z0), #pos(z1)) -> c13 #COMPARE(#pos(z0), #0) -> c14 #COMPARE(#pos(z0), #neg(z1)) -> c15 #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) #COMPARE(#s(z0), #0) -> c17 #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) #EQ'(#0, #0) -> c19 #EQ'(#0, #neg(z0)) -> c20 #EQ'(#0, #pos(z0)) -> c21 #EQ'(#0, #s(z0)) -> c22 #EQ'(#neg(z0), #0) -> c23 #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) #EQ'(#neg(z0), #pos(z1)) -> c25 #EQ'(#pos(z0), #0) -> c26 #EQ'(#pos(z0), #neg(z1)) -> c27 #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) #EQ'(#s(z0), #0) -> c29 #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) #EQ'(::(z0, z1), nil) -> c33 #EQ'(nil, ::(z0, z1)) -> c34 #EQ'(nil, nil) -> c35 #OR(#false, #false) -> c36 #OR(#false, #true) -> c37 #OR(#true, #false) -> c38 #OR(#true, #true) -> c39 #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #cklt(#EQ) -> #false #cklt(#GT) -> #false #cklt(#LT) -> #true #compare(#0, #0) -> #EQ #compare(#0, #neg(z0)) -> #GT #compare(#0, #pos(z0)) -> #LT #compare(#0, #s(z0)) -> #LT #compare(#neg(z0), #0) -> #LT #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) #compare(#neg(z0), #pos(z1)) -> #LT #compare(#pos(z0), #0) -> #GT #compare(#pos(z0), #neg(z1)) -> #GT #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) #compare(#s(z0), #0) -> #GT #compare(#s(z0), #s(z1)) -> #compare(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), nil) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, nil) -> #true #or(#false, #false) -> #false #or(#false, #true) -> #true #or(#true, #false) -> #true #or(#true, #true) -> #true #equal(z0, z1) -> #eq(z0, z1) #less(z0, z1) -> #cklt(#compare(z0, z1)) and(z0, z1) -> #and(z0, z1) insert(z0, z1) -> insert#1(z1, z0) insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) insert#1(nil, z0) -> ::(z0, nil) insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) isortlist(z0) -> isortlist#1(z0) isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) isortlist#1(nil) -> nil leq(z0, z1) -> leq#1(z0, z1) leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) leq#1(nil, z0) -> #true leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) leq#2(nil, z0, z1) -> #false or(z0, z1) -> #or(z0, z1) Rewrite Strategy: INNERMOST ---------------------------------------- (179) DecreasingLoopProof (LOWER BOUND(ID)) The following loop(s) give(s) rise to the lower bound Omega(n^1): The rewrite sequence ISORTLIST(::(z01_1, z12_1)) ->^+ c48(c49(INSERT(z01_1, isortlist(z12_1)), ISORTLIST(z12_1))) gives rise to a decreasing loop by considering the right hand sides subterm at position [0,1]. The pumping substitution is [z12_1 / ::(z01_1, z12_1)]. The result substitution is [ ]. ---------------------------------------- (180) Complex Obligation (BEST) ---------------------------------------- (181) Obligation: Proved the lower bound n^1 for the following obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) AND(z0, z1) -> c42(#AND(z0, z1)) INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) INSERT#1(nil, z0) -> c45 INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) INSERT#2(#true, z0, z1, z2) -> c47 ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) ISORTLIST#1(nil) -> c50 LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) LEQ#1(nil, z0) -> c53 LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) LEQ#2(nil, z0, z1) -> c57 OR(z0, z1) -> c58(#OR(z0, z1)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #CKLT(#EQ) -> c4 #CKLT(#GT) -> c5 #CKLT(#LT) -> c6 #COMPARE(#0, #0) -> c7 #COMPARE(#0, #neg(z0)) -> c8 #COMPARE(#0, #pos(z0)) -> c9 #COMPARE(#0, #s(z0)) -> c10 #COMPARE(#neg(z0), #0) -> c11 #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) #COMPARE(#neg(z0), #pos(z1)) -> c13 #COMPARE(#pos(z0), #0) -> c14 #COMPARE(#pos(z0), #neg(z1)) -> c15 #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) #COMPARE(#s(z0), #0) -> c17 #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) #EQ'(#0, #0) -> c19 #EQ'(#0, #neg(z0)) -> c20 #EQ'(#0, #pos(z0)) -> c21 #EQ'(#0, #s(z0)) -> c22 #EQ'(#neg(z0), #0) -> c23 #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) #EQ'(#neg(z0), #pos(z1)) -> c25 #EQ'(#pos(z0), #0) -> c26 #EQ'(#pos(z0), #neg(z1)) -> c27 #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) #EQ'(#s(z0), #0) -> c29 #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) #EQ'(::(z0, z1), nil) -> c33 #EQ'(nil, ::(z0, z1)) -> c34 #EQ'(nil, nil) -> c35 #OR(#false, #false) -> c36 #OR(#false, #true) -> c37 #OR(#true, #false) -> c38 #OR(#true, #true) -> c39 #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #cklt(#EQ) -> #false #cklt(#GT) -> #false #cklt(#LT) -> #true #compare(#0, #0) -> #EQ #compare(#0, #neg(z0)) -> #GT #compare(#0, #pos(z0)) -> #LT #compare(#0, #s(z0)) -> #LT #compare(#neg(z0), #0) -> #LT #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) #compare(#neg(z0), #pos(z1)) -> #LT #compare(#pos(z0), #0) -> #GT #compare(#pos(z0), #neg(z1)) -> #GT #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) #compare(#s(z0), #0) -> #GT #compare(#s(z0), #s(z1)) -> #compare(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), nil) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, nil) -> #true #or(#false, #false) -> #false #or(#false, #true) -> #true #or(#true, #false) -> #true #or(#true, #true) -> #true #equal(z0, z1) -> #eq(z0, z1) #less(z0, z1) -> #cklt(#compare(z0, z1)) and(z0, z1) -> #and(z0, z1) insert(z0, z1) -> insert#1(z1, z0) insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) insert#1(nil, z0) -> ::(z0, nil) insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) isortlist(z0) -> isortlist#1(z0) isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) isortlist#1(nil) -> nil leq(z0, z1) -> leq#1(z0, z1) leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) leq#1(nil, z0) -> #true leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) leq#2(nil, z0, z1) -> #false or(z0, z1) -> #or(z0, z1) Rewrite Strategy: INNERMOST ---------------------------------------- (182) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (183) BOUNDS(n^1, INF) ---------------------------------------- (184) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c40(#EQ'(z0, z1)) #LESS(z0, z1) -> c41(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) AND(z0, z1) -> c42(#AND(z0, z1)) INSERT(z0, z1) -> c43(INSERT#1(z1, z0)) INSERT#1(::(z0, z1), z2) -> c44(INSERT#2(leq(z2, z0), z2, z0, z1), LEQ(z2, z0)) INSERT#1(nil, z0) -> c45 INSERT#2(#false, z0, z1, z2) -> c46(INSERT(z0, z2)) INSERT#2(#true, z0, z1, z2) -> c47 ISORTLIST(z0) -> c48(ISORTLIST#1(z0)) ISORTLIST#1(::(z0, z1)) -> c49(INSERT(z0, isortlist(z1)), ISORTLIST(z1)) ISORTLIST#1(nil) -> c50 LEQ(z0, z1) -> c51(LEQ#1(z0, z1)) LEQ#1(::(z0, z1), z2) -> c52(LEQ#2(z2, z0, z1)) LEQ#1(nil, z0) -> c53 LEQ#2(::(z0, z1), z2, z3) -> c54(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), #LESS(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c55(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), #EQUAL(z2, z0)) LEQ#2(::(z0, z1), z2, z3) -> c56(OR(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))), AND(#equal(z2, z0), leq(z3, z1)), LEQ(z3, z1)) LEQ#2(nil, z0, z1) -> c57 OR(z0, z1) -> c58(#OR(z0, z1)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #CKLT(#EQ) -> c4 #CKLT(#GT) -> c5 #CKLT(#LT) -> c6 #COMPARE(#0, #0) -> c7 #COMPARE(#0, #neg(z0)) -> c8 #COMPARE(#0, #pos(z0)) -> c9 #COMPARE(#0, #s(z0)) -> c10 #COMPARE(#neg(z0), #0) -> c11 #COMPARE(#neg(z0), #neg(z1)) -> c12(#COMPARE(z1, z0)) #COMPARE(#neg(z0), #pos(z1)) -> c13 #COMPARE(#pos(z0), #0) -> c14 #COMPARE(#pos(z0), #neg(z1)) -> c15 #COMPARE(#pos(z0), #pos(z1)) -> c16(#COMPARE(z0, z1)) #COMPARE(#s(z0), #0) -> c17 #COMPARE(#s(z0), #s(z1)) -> c18(#COMPARE(z0, z1)) #EQ'(#0, #0) -> c19 #EQ'(#0, #neg(z0)) -> c20 #EQ'(#0, #pos(z0)) -> c21 #EQ'(#0, #s(z0)) -> c22 #EQ'(#neg(z0), #0) -> c23 #EQ'(#neg(z0), #neg(z1)) -> c24(#EQ'(z0, z1)) #EQ'(#neg(z0), #pos(z1)) -> c25 #EQ'(#pos(z0), #0) -> c26 #EQ'(#pos(z0), #neg(z1)) -> c27 #EQ'(#pos(z0), #pos(z1)) -> c28(#EQ'(z0, z1)) #EQ'(#s(z0), #0) -> c29 #EQ'(#s(z0), #s(z1)) -> c30(#EQ'(z0, z1)) #EQ'(::(z0, z1), ::(z2, z3)) -> c31(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z0, z2)) #EQ'(::(z0, z1), ::(z2, z3)) -> c32(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ'(z1, z3)) #EQ'(::(z0, z1), nil) -> c33 #EQ'(nil, ::(z0, z1)) -> c34 #EQ'(nil, nil) -> c35 #OR(#false, #false) -> c36 #OR(#false, #true) -> c37 #OR(#true, #false) -> c38 #OR(#true, #true) -> c39 #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #cklt(#EQ) -> #false #cklt(#GT) -> #false #cklt(#LT) -> #true #compare(#0, #0) -> #EQ #compare(#0, #neg(z0)) -> #GT #compare(#0, #pos(z0)) -> #LT #compare(#0, #s(z0)) -> #LT #compare(#neg(z0), #0) -> #LT #compare(#neg(z0), #neg(z1)) -> #compare(z1, z0) #compare(#neg(z0), #pos(z1)) -> #LT #compare(#pos(z0), #0) -> #GT #compare(#pos(z0), #neg(z1)) -> #GT #compare(#pos(z0), #pos(z1)) -> #compare(z0, z1) #compare(#s(z0), #0) -> #GT #compare(#s(z0), #s(z1)) -> #compare(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), nil) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, nil) -> #true #or(#false, #false) -> #false #or(#false, #true) -> #true #or(#true, #false) -> #true #or(#true, #true) -> #true #equal(z0, z1) -> #eq(z0, z1) #less(z0, z1) -> #cklt(#compare(z0, z1)) and(z0, z1) -> #and(z0, z1) insert(z0, z1) -> insert#1(z1, z0) insert#1(::(z0, z1), z2) -> insert#2(leq(z2, z0), z2, z0, z1) insert#1(nil, z0) -> ::(z0, nil) insert#2(#false, z0, z1, z2) -> ::(z1, insert(z0, z2)) insert#2(#true, z0, z1, z2) -> ::(z0, ::(z1, z2)) isortlist(z0) -> isortlist#1(z0) isortlist#1(::(z0, z1)) -> insert(z0, isortlist(z1)) isortlist#1(nil) -> nil leq(z0, z1) -> leq#1(z0, z1) leq#1(::(z0, z1), z2) -> leq#2(z2, z0, z1) leq#1(nil, z0) -> #true leq#2(::(z0, z1), z2, z3) -> or(#less(z2, z0), and(#equal(z2, z0), leq(z3, z1))) leq#2(nil, z0, z1) -> #false or(z0, z1) -> #or(z0, z1) Rewrite Strategy: INNERMOST