YES(?,POLY) * Step 1: TrivialSCCs WORST_CASE(?,POLY) + Considered Problem: Rules: 0. evalaxstart(A,B,C) -> evalaxentryin(A,B,C) True (1,1) 1. evalaxentryin(A,B,C) -> evalaxbbin(0,B,C) True (?,1) 2. evalaxbbin(A,B,C) -> evalaxbb2in(A,0,C) True (?,1) 3. evalaxbb2in(A,B,C) -> evalaxbb1in(A,B,C) [C >= 2 + B] (?,1) 4. evalaxbb2in(A,B,C) -> evalaxbb3in(A,B,C) [1 + B >= C] (?,1) 5. evalaxbb1in(A,B,C) -> evalaxbb2in(A,1 + B,C) True (?,1) 6. evalaxbb3in(A,B,C) -> evalaxbbin(1 + A,B,C) [1 + B >= C && C >= 3 + A] (?,1) 7. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [C >= 2 + B] (?,1) 8. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [2 + A >= C] (?,1) 9. evalaxreturnin(A,B,C) -> evalaxstop(A,B,C) True (?,1) Signature: {(evalaxbb1in,3) ;(evalaxbb2in,3) ;(evalaxbb3in,3) ;(evalaxbbin,3) ;(evalaxentryin,3) ;(evalaxreturnin,3) ;(evalaxstart,3) ;(evalaxstop,3)} Flow Graph: [0->{1},1->{2},2->{3,4},3->{5},4->{6,7,8},5->{3,4},6->{2},7->{9},8->{9},9->{}] + Applied Processor: TrivialSCCs + Details: All trivial SCCs of the transition graph admit timebound 1. * Step 2: UnsatPaths WORST_CASE(?,POLY) + Considered Problem: Rules: 0. evalaxstart(A,B,C) -> evalaxentryin(A,B,C) True (1,1) 1. evalaxentryin(A,B,C) -> evalaxbbin(0,B,C) True (1,1) 2. evalaxbbin(A,B,C) -> evalaxbb2in(A,0,C) True (?,1) 3. evalaxbb2in(A,B,C) -> evalaxbb1in(A,B,C) [C >= 2 + B] (?,1) 4. evalaxbb2in(A,B,C) -> evalaxbb3in(A,B,C) [1 + B >= C] (?,1) 5. evalaxbb1in(A,B,C) -> evalaxbb2in(A,1 + B,C) True (?,1) 6. evalaxbb3in(A,B,C) -> evalaxbbin(1 + A,B,C) [1 + B >= C && C >= 3 + A] (?,1) 7. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [C >= 2 + B] (1,1) 8. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [2 + A >= C] (1,1) 9. evalaxreturnin(A,B,C) -> evalaxstop(A,B,C) True (1,1) Signature: {(evalaxbb1in,3) ;(evalaxbb2in,3) ;(evalaxbb3in,3) ;(evalaxbbin,3) ;(evalaxentryin,3) ;(evalaxreturnin,3) ;(evalaxstart,3) ;(evalaxstop,3)} Flow Graph: [0->{1},1->{2},2->{3,4},3->{5},4->{6,7,8},5->{3,4},6->{2},7->{9},8->{9},9->{}] + Applied Processor: UnsatPaths + Details: We remove following edges from the transition graph: [(4,7)] * Step 3: UnreachableRules WORST_CASE(?,POLY) + Considered Problem: Rules: 0. evalaxstart(A,B,C) -> evalaxentryin(A,B,C) True (1,1) 1. evalaxentryin(A,B,C) -> evalaxbbin(0,B,C) True (1,1) 2. evalaxbbin(A,B,C) -> evalaxbb2in(A,0,C) True (?,1) 3. evalaxbb2in(A,B,C) -> evalaxbb1in(A,B,C) [C >= 2 + B] (?,1) 4. evalaxbb2in(A,B,C) -> evalaxbb3in(A,B,C) [1 + B >= C] (?,1) 5. evalaxbb1in(A,B,C) -> evalaxbb2in(A,1 + B,C) True (?,1) 6. evalaxbb3in(A,B,C) -> evalaxbbin(1 + A,B,C) [1 + B >= C && C >= 3 + A] (?,1) 7. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [C >= 2 + B] (1,1) 8. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [2 + A >= C] (1,1) 9. evalaxreturnin(A,B,C) -> evalaxstop(A,B,C) True (1,1) Signature: {(evalaxbb1in,3) ;(evalaxbb2in,3) ;(evalaxbb3in,3) ;(evalaxbbin,3) ;(evalaxentryin,3) ;(evalaxreturnin,3) ;(evalaxstart,3) ;(evalaxstop,3)} Flow Graph: [0->{1},1->{2},2->{3,4},3->{5},4->{6,8},5->{3,4},6->{2},7->{9},8->{9},9->{}] + Applied Processor: UnreachableRules + Details: Following transitions are not reachable from the starting states and are revomed: [7] * Step 4: AddSinks WORST_CASE(?,POLY) + Considered Problem: Rules: 0. evalaxstart(A,B,C) -> evalaxentryin(A,B,C) True (1,1) 1. evalaxentryin(A,B,C) -> evalaxbbin(0,B,C) True (1,1) 2. evalaxbbin(A,B,C) -> evalaxbb2in(A,0,C) True (?,1) 3. evalaxbb2in(A,B,C) -> evalaxbb1in(A,B,C) [C >= 2 + B] (?,1) 4. evalaxbb2in(A,B,C) -> evalaxbb3in(A,B,C) [1 + B >= C] (?,1) 5. evalaxbb1in(A,B,C) -> evalaxbb2in(A,1 + B,C) True (?,1) 6. evalaxbb3in(A,B,C) -> evalaxbbin(1 + A,B,C) [1 + B >= C && C >= 3 + A] (?,1) 8. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [2 + A >= C] (1,1) 9. evalaxreturnin(A,B,C) -> evalaxstop(A,B,C) True (1,1) Signature: {(evalaxbb1in,3) ;(evalaxbb2in,3) ;(evalaxbb3in,3) ;(evalaxbbin,3) ;(evalaxentryin,3) ;(evalaxreturnin,3) ;(evalaxstart,3) ;(evalaxstop,3)} Flow Graph: [0->{1},1->{2},2->{3,4},3->{5},4->{6,8},5->{3,4},6->{2},8->{9},9->{}] + Applied Processor: AddSinks + Details: () * Step 5: LooptreeTransformer WORST_CASE(?,POLY) + Considered Problem: Rules: 0. evalaxstart(A,B,C) -> evalaxentryin(A,B,C) True (1,1) 1. evalaxentryin(A,B,C) -> evalaxbbin(0,B,C) True (?,1) 2. evalaxbbin(A,B,C) -> evalaxbb2in(A,0,C) True (?,1) 3. evalaxbb2in(A,B,C) -> evalaxbb1in(A,B,C) [C >= 2 + B] (?,1) 4. evalaxbb2in(A,B,C) -> evalaxbb3in(A,B,C) [1 + B >= C] (?,1) 5. evalaxbb1in(A,B,C) -> evalaxbb2in(A,1 + B,C) True (?,1) 6. evalaxbb3in(A,B,C) -> evalaxbbin(1 + A,B,C) [1 + B >= C && C >= 3 + A] (?,1) 8. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [2 + A >= C] (?,1) 9. evalaxreturnin(A,B,C) -> evalaxstop(A,B,C) True (?,1) 10. evalaxreturnin(A,B,C) -> exitus616(A,B,C) True (?,1) Signature: {(evalaxbb1in,3) ;(evalaxbb2in,3) ;(evalaxbb3in,3) ;(evalaxbbin,3) ;(evalaxentryin,3) ;(evalaxreturnin,3) ;(evalaxstart,3) ;(evalaxstop,3) ;(exitus616,3)} Flow Graph: [0->{1},1->{2},2->{3,4},3->{5},4->{6,8},5->{3,4},6->{2},8->{9,10},9->{},10->{}] + Applied Processor: LooptreeTransformer + Details: We construct a looptree: P: [0,1,2,3,4,5,6,8,9,10] | `- p:[2,6,4,5,3] c: [6] | `- p:[3,5] c: [3] * Step 6: SizeAbstraction WORST_CASE(?,POLY) + Considered Problem: (Rules: 0. evalaxstart(A,B,C) -> evalaxentryin(A,B,C) True (1,1) 1. evalaxentryin(A,B,C) -> evalaxbbin(0,B,C) True (?,1) 2. evalaxbbin(A,B,C) -> evalaxbb2in(A,0,C) True (?,1) 3. evalaxbb2in(A,B,C) -> evalaxbb1in(A,B,C) [C >= 2 + B] (?,1) 4. evalaxbb2in(A,B,C) -> evalaxbb3in(A,B,C) [1 + B >= C] (?,1) 5. evalaxbb1in(A,B,C) -> evalaxbb2in(A,1 + B,C) True (?,1) 6. evalaxbb3in(A,B,C) -> evalaxbbin(1 + A,B,C) [1 + B >= C && C >= 3 + A] (?,1) 8. evalaxbb3in(A,B,C) -> evalaxreturnin(A,B,C) [2 + A >= C] (?,1) 9. evalaxreturnin(A,B,C) -> evalaxstop(A,B,C) True (?,1) 10. evalaxreturnin(A,B,C) -> exitus616(A,B,C) True (?,1) Signature: {(evalaxbb1in,3) ;(evalaxbb2in,3) ;(evalaxbb3in,3) ;(evalaxbbin,3) ;(evalaxentryin,3) ;(evalaxreturnin,3) ;(evalaxstart,3) ;(evalaxstop,3) ;(exitus616,3)} Flow Graph: [0->{1},1->{2},2->{3,4},3->{5},4->{6,8},5->{3,4},6->{2},8->{9,10},9->{},10->{}] ,We construct a looptree: P: [0,1,2,3,4,5,6,8,9,10] | `- p:[2,6,4,5,3] c: [6] | `- p:[3,5] c: [3]) + Applied Processor: SizeAbstraction UseCFG Minimize + Details: () * Step 7: FlowAbstraction WORST_CASE(?,POLY) + Considered Problem: Program: Domain: [A,B,C,0.0,0.0.0] evalaxstart ~> evalaxentryin [A <= A, B <= B, C <= C] evalaxentryin ~> evalaxbbin [A <= 0*K, B <= B, C <= C] evalaxbbin ~> evalaxbb2in [A <= A, B <= 0*K, C <= C] evalaxbb2in ~> evalaxbb1in [A <= A, B <= B, C <= C] evalaxbb2in ~> evalaxbb3in [A <= A, B <= B, C <= C] evalaxbb1in ~> evalaxbb2in [A <= A, B <= K + B, C <= C] evalaxbb3in ~> evalaxbbin [A <= A + C, B <= B, C <= C] evalaxbb3in ~> evalaxreturnin [A <= A, B <= B, C <= C] evalaxreturnin ~> evalaxstop [A <= A, B <= B, C <= C] evalaxreturnin ~> exitus616 [A <= A, B <= B, C <= C] + Loop: [0.0 <= 2*K + A + C] evalaxbbin ~> evalaxbb2in [A <= A, B <= 0*K, C <= C] evalaxbb3in ~> evalaxbbin [A <= A + C, B <= B, C <= C] evalaxbb2in ~> evalaxbb3in [A <= A, B <= B, C <= C] evalaxbb1in ~> evalaxbb2in [A <= A, B <= K + B, C <= C] evalaxbb2in ~> evalaxbb1in [A <= A, B <= B, C <= C] + Loop: [0.0.0 <= 2*K + B + C] evalaxbb2in ~> evalaxbb1in [A <= A, B <= B, C <= C] evalaxbb1in ~> evalaxbb2in [A <= A, B <= K + B, C <= C] + Applied Processor: FlowAbstraction + Details: () * Step 8: LareProcessor WORST_CASE(?,POLY) + Considered Problem: Program: Domain: [tick,huge,K,A,B,C,0.0,0.0.0] evalaxstart ~> evalaxentryin [] evalaxentryin ~> evalaxbbin [K ~=> A] evalaxbbin ~> evalaxbb2in [K ~=> B] evalaxbb2in ~> evalaxbb1in [] evalaxbb2in ~> evalaxbb3in [] evalaxbb1in ~> evalaxbb2in [B ~+> B,K ~+> B] evalaxbb3in ~> evalaxbbin [A ~+> A,C ~+> A] evalaxbb3in ~> evalaxreturnin [] evalaxreturnin ~> evalaxstop [] evalaxreturnin ~> exitus616 [] + Loop: [A ~+> 0.0,C ~+> 0.0,K ~*> 0.0] evalaxbbin ~> evalaxbb2in [K ~=> B] evalaxbb3in ~> evalaxbbin [A ~+> A,C ~+> A] evalaxbb2in ~> evalaxbb3in [] evalaxbb1in ~> evalaxbb2in [B ~+> B,K ~+> B] evalaxbb2in ~> evalaxbb1in [] + Loop: [B ~+> 0.0.0,C ~+> 0.0.0,K ~*> 0.0.0] evalaxbb2in ~> evalaxbb1in [] evalaxbb1in ~> evalaxbb2in [B ~+> B,K ~+> B] + Applied Processor: LareProcessor + Details: evalaxstart ~> evalaxstop [K ~=> A ,K ~=> B ,C ~+> A ,C ~+> 0.0 ,C ~+> 0.0.0 ,C ~+> tick ,tick ~+> tick ,K ~+> A ,K ~+> B ,K ~+> 0.0 ,K ~+> 0.0.0 ,K ~+> tick ,C ~*> A ,C ~*> B ,C ~*> 0.0.0 ,C ~*> tick ,K ~*> A ,K ~*> B ,K ~*> 0.0 ,K ~*> 0.0.0 ,K ~*> tick ,C ~^> B ,K ~^> B] evalaxstart ~> exitus616 [K ~=> A ,K ~=> B ,C ~+> A ,C ~+> 0.0 ,C ~+> 0.0.0 ,C ~+> tick ,tick ~+> tick ,K ~+> A ,K ~+> B ,K ~+> 0.0 ,K ~+> 0.0.0 ,K ~+> tick ,C ~*> A ,C ~*> B ,C ~*> 0.0.0 ,C ~*> tick ,K ~*> A ,K ~*> B ,K ~*> 0.0 ,K ~*> 0.0.0 ,K ~*> tick ,C ~^> B ,K ~^> B] + evalaxbb3in> [K ~=> B ,A ~+> A ,A ~+> 0.0 ,A ~+> tick ,C ~+> A ,C ~+> 0.0 ,C ~+> 0.0.0 ,C ~+> tick ,tick ~+> tick ,K ~+> B ,K ~+> 0.0.0 ,K ~+> tick ,A ~*> A ,A ~*> B ,A ~*> tick ,C ~*> A ,C ~*> B ,C ~*> 0.0.0 ,C ~*> tick ,K ~*> A ,K ~*> B ,K ~*> 0.0 ,K ~*> 0.0.0 ,K ~*> tick ,A ~^> B ,C ~^> B ,K ~^> B] + evalaxbb2in> [B ~+> B ,B ~+> 0.0.0 ,B ~+> tick ,C ~+> 0.0.0 ,C ~+> tick ,tick ~+> tick ,K ~+> B ,B ~*> B ,C ~*> B ,K ~*> B ,K ~*> 0.0.0 ,K ~*> tick] YES(?,POLY)