YES(?,POLY) * Step 1: TrivialSCCs WORST_CASE(?,POLY) + Considered Problem: Rules: 0. start(A,B,C,D) -> stop(A,B,C,D) [0 >= A && B = C && D = A] (?,1) 1. start(A,B,C,D) -> lbl6(A,B,C,D) [A >= 1 && 0 >= C && B = C && D = A] (?,1) 2. start(A,B,C,D) -> cut(A,B,C,D) [A >= 1 && D = A && B = A && C = A] (?,1) 3. start(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [A >= 1 && C >= 1 + A && B = C && D = A] (?,1) 4. start(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [A >= 1 + C && C >= 1 && B = C && D = A] (?,1) 5. lbl6(A,B,C,D) -> stop(A,B,C,D) [A >= 1 && 0 >= C && D = A && B = C] (?,1) 6. lbl101(A,B,C,D) -> cut(A,B,C,D) [A >= B && B >= 1 && C >= 2*B && D = B] (?,1) 7. lbl101(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 8. lbl101(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 9. lbl111(A,B,C,D) -> cut(A,B,C,D) [C >= B && B >= 1 && A >= 2*B && D = B] (?,1) 10. lbl111(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 11. lbl111(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 12. cut(A,B,C,D) -> stop(A,B,C,D) [A >= B && B >= 1 && C >= B && D = B] (?,1) 13. start0(A,B,C,D) -> start(A,C,C,A) True (1,1) Signature: {(cut,4);(lbl101,4);(lbl111,4);(lbl6,4);(start,4);(start0,4);(stop,4)} Flow Graph: [0->{},1->{5},2->{12},3->{6,7,8},4->{9,10,11},5->{},6->{12},7->{6,7,8},8->{9,10,11},9->{12},10->{6,7,8} ,11->{9,10,11},12->{},13->{0,1,2,3,4}] + Applied Processor: TrivialSCCs + Details: All trivial SCCs of the transition graph admit timebound 1. * Step 2: AddSinks WORST_CASE(?,POLY) + Considered Problem: Rules: 0. start(A,B,C,D) -> stop(A,B,C,D) [0 >= A && B = C && D = A] (1,1) 1. start(A,B,C,D) -> lbl6(A,B,C,D) [A >= 1 && 0 >= C && B = C && D = A] (1,1) 2. start(A,B,C,D) -> cut(A,B,C,D) [A >= 1 && D = A && B = A && C = A] (1,1) 3. start(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [A >= 1 && C >= 1 + A && B = C && D = A] (1,1) 4. start(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [A >= 1 + C && C >= 1 && B = C && D = A] (1,1) 5. lbl6(A,B,C,D) -> stop(A,B,C,D) [A >= 1 && 0 >= C && D = A && B = C] (1,1) 6. lbl101(A,B,C,D) -> cut(A,B,C,D) [A >= B && B >= 1 && C >= 2*B && D = B] (1,1) 7. lbl101(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 8. lbl101(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 9. lbl111(A,B,C,D) -> cut(A,B,C,D) [C >= B && B >= 1 && A >= 2*B && D = B] (1,1) 10. lbl111(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 11. lbl111(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 12. cut(A,B,C,D) -> stop(A,B,C,D) [A >= B && B >= 1 && C >= B && D = B] (1,1) 13. start0(A,B,C,D) -> start(A,C,C,A) True (1,1) Signature: {(cut,4);(lbl101,4);(lbl111,4);(lbl6,4);(start,4);(start0,4);(stop,4)} Flow Graph: [0->{},1->{5},2->{12},3->{6,7,8},4->{9,10,11},5->{},6->{12},7->{6,7,8},8->{9,10,11},9->{12},10->{6,7,8} ,11->{9,10,11},12->{},13->{0,1,2,3,4}] + Applied Processor: AddSinks + Details: () * Step 3: LooptreeTransformer WORST_CASE(?,POLY) + Considered Problem: Rules: 0. start(A,B,C,D) -> stop(A,B,C,D) [0 >= A && B = C && D = A] (?,1) 1. start(A,B,C,D) -> lbl6(A,B,C,D) [A >= 1 && 0 >= C && B = C && D = A] (?,1) 2. start(A,B,C,D) -> cut(A,B,C,D) [A >= 1 && D = A && B = A && C = A] (?,1) 3. start(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [A >= 1 && C >= 1 + A && B = C && D = A] (?,1) 4. start(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [A >= 1 + C && C >= 1 && B = C && D = A] (?,1) 5. lbl6(A,B,C,D) -> stop(A,B,C,D) [A >= 1 && 0 >= C && D = A && B = C] (?,1) 6. lbl101(A,B,C,D) -> cut(A,B,C,D) [A >= B && B >= 1 && C >= 2*B && D = B] (?,1) 7. lbl101(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 8. lbl101(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 9. lbl111(A,B,C,D) -> cut(A,B,C,D) [C >= B && B >= 1 && A >= 2*B && D = B] (?,1) 10. lbl111(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 11. lbl111(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 12. cut(A,B,C,D) -> stop(A,B,C,D) [A >= B && B >= 1 && C >= B && D = B] (?,1) 13. start0(A,B,C,D) -> start(A,C,C,A) True (1,1) 14. cut(A,B,C,D) -> exitus616(A,B,C,D) True (?,1) 15. lbl6(A,B,C,D) -> exitus616(A,B,C,D) True (?,1) 16. start(A,B,C,D) -> exitus616(A,B,C,D) True (?,1) Signature: {(cut,4);(exitus616,4);(lbl101,4);(lbl111,4);(lbl6,4);(start,4);(start0,4);(stop,4)} Flow Graph: [0->{},1->{5,15},2->{12,14},3->{6,7,8},4->{9,10,11},5->{},6->{12,14},7->{6,7,8},8->{9,10,11},9->{12,14} ,10->{6,7,8},11->{9,10,11},12->{},13->{0,1,2,3,4,16},14->{},15->{},16->{}] + Applied Processor: LooptreeTransformer + Details: We construct a looptree: P: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] | `- p:[7,10,8,11] c: [11] | `- p:[7,10,8] c: [10] | `- p:[7] c: [7] * Step 4: SizeAbstraction WORST_CASE(?,POLY) + Considered Problem: (Rules: 0. start(A,B,C,D) -> stop(A,B,C,D) [0 >= A && B = C && D = A] (?,1) 1. start(A,B,C,D) -> lbl6(A,B,C,D) [A >= 1 && 0 >= C && B = C && D = A] (?,1) 2. start(A,B,C,D) -> cut(A,B,C,D) [A >= 1 && D = A && B = A && C = A] (?,1) 3. start(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [A >= 1 && C >= 1 + A && B = C && D = A] (?,1) 4. start(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [A >= 1 + C && C >= 1 && B = C && D = A] (?,1) 5. lbl6(A,B,C,D) -> stop(A,B,C,D) [A >= 1 && 0 >= C && D = A && B = C] (?,1) 6. lbl101(A,B,C,D) -> cut(A,B,C,D) [A >= B && B >= 1 && C >= 2*B && D = B] (?,1) 7. lbl101(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 8. lbl101(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && A >= D && B >= 1 && D >= 1 && C >= B + D] (?,1) 9. lbl111(A,B,C,D) -> cut(A,B,C,D) [C >= B && B >= 1 && A >= 2*B && D = B] (?,1) 10. lbl111(A,B,C,D) -> lbl101(A,B + -1*D,C,D) [B >= 1 + D && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 11. lbl111(A,B,C,D) -> lbl111(A,B,C,-1*B + D) [D >= 1 + B && C >= B && B >= 1 && D >= 1 && A >= B + D] (?,1) 12. cut(A,B,C,D) -> stop(A,B,C,D) [A >= B && B >= 1 && C >= B && D = B] (?,1) 13. start0(A,B,C,D) -> start(A,C,C,A) True (1,1) 14. cut(A,B,C,D) -> exitus616(A,B,C,D) True (?,1) 15. lbl6(A,B,C,D) -> exitus616(A,B,C,D) True (?,1) 16. start(A,B,C,D) -> exitus616(A,B,C,D) True (?,1) Signature: {(cut,4);(exitus616,4);(lbl101,4);(lbl111,4);(lbl6,4);(start,4);(start0,4);(stop,4)} Flow Graph: [0->{},1->{5,15},2->{12,14},3->{6,7,8},4->{9,10,11},5->{},6->{12,14},7->{6,7,8},8->{9,10,11},9->{12,14} ,10->{6,7,8},11->{9,10,11},12->{},13->{0,1,2,3,4,16},14->{},15->{},16->{}] ,We construct a looptree: P: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] | `- p:[7,10,8,11] c: [11] | `- p:[7,10,8] c: [10] | `- p:[7] c: [7]) + Applied Processor: SizeAbstraction UseCFG Minimize + Details: () * Step 5: FlowAbstraction WORST_CASE(?,POLY) + Considered Problem: Program: Domain: [A,B,C,D,0.0,0.0.0,0.0.0.0] start ~> stop [A <= A, B <= B, C <= C, D <= D] start ~> lbl6 [A <= A, B <= B, C <= C, D <= D] start ~> cut [A <= A, B <= B, C <= C, D <= D] start ~> lbl101 [A <= A, B <= B, C <= C, D <= D] start ~> lbl111 [A <= A, B <= B, C <= C, D <= A] lbl6 ~> stop [A <= A, B <= B, C <= C, D <= D] lbl101 ~> cut [A <= A, B <= B, C <= C, D <= D] lbl101 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] lbl101 ~> lbl111 [A <= A, B <= B, C <= C, D <= D] lbl111 ~> cut [A <= A, B <= B, C <= C, D <= D] lbl111 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] lbl111 ~> lbl111 [A <= A, B <= B, C <= C, D <= D] cut ~> stop [A <= A, B <= B, C <= C, D <= D] start0 ~> start [A <= A, B <= C, C <= C, D <= A] cut ~> exitus616 [A <= A, B <= B, C <= C, D <= D] lbl6 ~> exitus616 [A <= A, B <= B, C <= C, D <= D] start ~> exitus616 [A <= A, B <= B, C <= C, D <= D] + Loop: [0.0 <= D] lbl101 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] lbl111 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] lbl101 ~> lbl111 [A <= A, B <= B, C <= C, D <= D] lbl111 ~> lbl111 [A <= A, B <= B, C <= C, D <= D] + Loop: [0.0.0 <= B] lbl101 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] lbl111 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] lbl101 ~> lbl111 [A <= A, B <= B, C <= C, D <= D] + Loop: [0.0.0.0 <= B] lbl101 ~> lbl101 [A <= A, B <= B, C <= C, D <= D] + Applied Processor: FlowAbstraction + Details: () * Step 6: LareProcessor WORST_CASE(?,POLY) + Considered Problem: Program: Domain: [tick,huge,K,A,B,C,D,0.0,0.0.0,0.0.0.0] start ~> stop [] start ~> lbl6 [] start ~> cut [] start ~> lbl101 [] start ~> lbl111 [A ~=> D] lbl6 ~> stop [] lbl101 ~> cut [] lbl101 ~> lbl101 [] lbl101 ~> lbl111 [] lbl111 ~> cut [] lbl111 ~> lbl101 [] lbl111 ~> lbl111 [] cut ~> stop [] start0 ~> start [A ~=> D,C ~=> B] cut ~> exitus616 [] lbl6 ~> exitus616 [] start ~> exitus616 [] + Loop: [D ~=> 0.0] lbl101 ~> lbl101 [] lbl111 ~> lbl101 [] lbl101 ~> lbl111 [] lbl111 ~> lbl111 [] + Loop: [B ~=> 0.0.0] lbl101 ~> lbl101 [] lbl111 ~> lbl101 [] lbl101 ~> lbl111 [] + Loop: [B ~=> 0.0.0.0] lbl101 ~> lbl101 [] + Applied Processor: LareProcessor + Details: start0 ~> exitus616 [A ~=> D ,A ~=> 0.0 ,C ~=> B ,C ~=> 0.0.0 ,C ~=> 0.0.0.0 ,A ~+> tick ,C ~+> tick ,tick ~+> tick ,A ~*> tick ,C ~*> tick] start0 ~> stop [A ~=> D ,A ~=> 0.0 ,C ~=> B ,C ~=> 0.0.0 ,C ~=> 0.0.0.0 ,A ~+> tick ,C ~+> tick ,tick ~+> tick ,A ~*> tick ,C ~*> tick] + lbl101> [B ~=> 0.0.0 ,B ~=> 0.0.0.0 ,D ~=> 0.0 ,B ~+> tick ,D ~+> tick ,tick ~+> tick ,B ~*> tick ,D ~*> tick] lbl111> [B ~=> 0.0.0 ,B ~=> 0.0.0.0 ,D ~=> 0.0 ,B ~+> tick ,D ~+> tick ,tick ~+> tick ,B ~*> tick ,D ~*> tick] lbl101> [B ~=> 0.0.0 ,B ~=> 0.0.0.0 ,D ~=> 0.0 ,B ~+> tick ,D ~+> tick ,tick ~+> tick ,B ~*> tick ,D ~*> tick] lbl111> [B ~=> 0.0.0 ,B ~=> 0.0.0.0 ,D ~=> 0.0 ,B ~+> tick ,D ~+> tick ,tick ~+> tick ,B ~*> tick ,D ~*> tick] + lbl101> [B ~=> 0.0.0,B ~=> 0.0.0.0,B ~+> tick,tick ~+> tick,B ~*> tick] lbl111> [B ~=> 0.0.0,B ~=> 0.0.0.0,B ~+> tick,tick ~+> tick,B ~*> tick] lbl101> [B ~=> 0.0.0,B ~=> 0.0.0.0,B ~+> tick,tick ~+> tick,B ~*> tick] lbl111> [B ~=> 0.0.0,B ~=> 0.0.0.0,B ~+> tick,tick ~+> tick,B ~*> tick] + lbl101> [B ~=> 0.0.0.0,B ~+> tick,tick ~+> tick] YES(?,POLY)