YES(?,POLY) * Step 1: TrivialSCCs WORST_CASE(?,POLY) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [-21 + B >= 0 && A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [-21 + B >= 0 && 30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (?,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (?,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + Applied Processor: TrivialSCCs + Details: All trivial SCCs of the transition graph admit timebound 1. * Step 2: AddSinks WORST_CASE(?,POLY) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [-21 + B >= 0 && A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [-21 + B >= 0 && 30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (?,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (1,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + Applied Processor: AddSinks + Details: () * Step 3: LooptreeTransformer WORST_CASE(?,POLY) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [-21 + B >= 0 && A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [-21 + B >= 0 && 30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (?,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (?,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) 5. f300(A,B,C) -> exitus616(A,B,C) True (?,1) Signature: {(exitus616,3);(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3,5},2->{0,1},3->{},4->{2,3,5},5->{}] + Applied Processor: LooptreeTransformer + Details: We construct a looptree: P: [0,1,2,3,4,5] | `- p:[0,2,1] c: [2] | `- p:[0] c: [0] * Step 4: SizeAbstraction WORST_CASE(?,POLY) + Considered Problem: (Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [-21 + B >= 0 && A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [-21 + B >= 0 && 30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (?,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (?,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) 5. f300(A,B,C) -> exitus616(A,B,C) True (?,1) Signature: {(exitus616,3);(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3,5},2->{0,1},3->{},4->{2,3,5},5->{}] ,We construct a looptree: P: [0,1,2,3,4,5] | `- p:[0,2,1] c: [2] | `- p:[0] c: [0]) + Applied Processor: SizeAbstraction UseCFG Minimize + Details: () * Step 5: FlowAbstraction WORST_CASE(?,POLY) + Considered Problem: Program: Domain: [A,B,C,0.0,0.0.0] f2 ~> f2 [A <= A, B <= B, C <= C] f2 ~> f300 [A <= A, B <= B, C <= C] f300 ~> f2 [A <= A, B <= B, C <= C] f300 ~> f1 [A <= A, B <= B, C <= unknown] f3 ~> f300 [A <= A, B <= B, C <= C] f300 ~> exitus616 [A <= A, B <= B, C <= C] + Loop: [0.0 <= 21*K + B] f2 ~> f2 [A <= A, B <= B, C <= C] f300 ~> f2 [A <= A, B <= B, C <= C] f2 ~> f300 [A <= A, B <= B, C <= C] + Loop: [0.0.0 <= A] f2 ~> f2 [A <= A, B <= B, C <= C] + Applied Processor: FlowAbstraction + Details: () * Step 6: LareProcessor WORST_CASE(?,POLY) + Considered Problem: Program: Domain: [tick,huge,K,A,B,C,0.0,0.0.0] f2 ~> f2 [] f2 ~> f300 [] f300 ~> f2 [] f300 ~> f1 [huge ~=> C] f3 ~> f300 [] f300 ~> exitus616 [] + Loop: [B ~+> 0.0,K ~*> 0.0] f2 ~> f2 [] f300 ~> f2 [] f2 ~> f300 [] + Loop: [A ~=> 0.0.0] f2 ~> f2 [] + Applied Processor: LareProcessor + Details: f3 ~> exitus616 [A ~=> 0.0.0 ,A ~+> tick ,B ~+> 0.0 ,B ~+> tick ,tick ~+> tick ,A ~*> tick ,B ~*> tick ,K ~*> 0.0 ,K ~*> tick] f3 ~> f1 [A ~=> 0.0.0 ,huge ~=> C ,A ~+> tick ,B ~+> 0.0 ,B ~+> tick ,tick ~+> tick ,A ~*> tick ,B ~*> tick ,K ~*> 0.0 ,K ~*> tick] + f300> [A ~=> 0.0.0 ,A ~+> tick ,B ~+> 0.0 ,B ~+> tick ,tick ~+> tick ,A ~*> tick ,B ~*> tick ,K ~*> 0.0 ,K ~*> tick] + f2> [A ~=> 0.0.0,A ~+> tick,tick ~+> tick] YES(?,POLY)