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