NO Solver Timeout: 4 Global Timeout: 300 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg1 > 0) /\ (undef1 > 0), par{arg1 -> undef1, arg2 -> 0, arg3 -> 0, arg4 -> undef4, arg5 -> undef5}> = undef11) /\ (arg2 < undef11) /\ (undef11 > ~(1)) /\ (arg1 > 0), par{arg1 -> arg2, arg2 -> arg3, arg3 -> undef8, arg4 -> undef9, arg5 -> undef10}> ~(1)) /\ (undef17 > arg2) /\ (arg3 < undef17) /\ (undef18 > ~(1)) /\ (arg3 > ~(1)) /\ (arg1 > 0), par{arg1 -> arg2, arg2 -> (arg3 + 1), arg3 -> undef14, arg4 -> undef15, arg5 -> undef16}> 0), par{arg1 -> undef19, arg2 -> (arg1 + 1), arg3 -> arg2, arg4 -> undef22, arg5 -> undef23}> = undef30) /\ (arg3 <= undef30) /\ (arg1 > 0), par{arg1 -> 0, arg2 -> 0, arg3 -> undef27, arg4 -> undef28, arg5 -> undef29}> = undef36), par{arg1 -> (undef36 - 1), arg3 -> undef33, arg4 -> undef34, arg5 -> undef35}> 0), par{arg1 -> (arg1 + 1), arg2 -> undef38, arg3 -> undef39, arg4 -> undef40, arg5 -> undef41}> 0), par{arg1 -> undef43, arg2 -> arg1, arg3 -> arg2, arg4 -> undef46, arg5 -> undef47}> ~(1)) /\ (undef48 > 0) /\ (undef53 > 0), par{arg1 -> undef48, arg2 -> arg1, arg3 -> undef50, arg4 -> undef51, arg5 -> undef52}> 0) /\ (arg2 < undef59), par{arg1 -> (arg2 - 1), arg2 -> arg3, arg3 -> undef56, arg4 -> undef57, arg5 -> undef58}> 0), par{arg1 -> undef60, arg3 -> undef62, arg4 -> undef63, arg5 -> undef64}> = undef71) /\ (arg2 > 0) /\ (undef72 > undef71) /\ ((arg2 - 1) >= undef73) /\ (undef74 <= arg1) /\ (undef72 > undef73) /\ ((arg2 - 1) >= undef75) /\ (arg2 < undef72) /\ (arg2 > undef75), par{arg3 -> undef68, arg4 -> undef69, arg5 -> undef70}> = undef81) /\ (arg2 > 0) /\ (undef82 > undef81) /\ ((arg2 - 1) >= undef83) /\ (undef84 <= arg1) /\ (undef82 > undef83) /\ ((arg2 - 1) >= undef77) /\ (arg2 > undef77) /\ (arg2 < undef82) /\ (((arg2 - 1) - (2 * undef81)) >= 0) /\ (((arg2 - 1) - (2 * undef81)) < 2) /\ (((arg2 - 1) - (2 * undef83)) >= 0) /\ (((arg2 - 1) - (2 * undef83)) < 2) /\ (((arg2 - 1) - (2 * undef77)) < 2) /\ (((arg2 - 1) - (2 * undef77)) >= 0), par{arg2 -> undef77, arg3 -> undef78, arg4 -> undef79, arg5 -> undef80}> = undef90) /\ (arg2 > 0) /\ (undef91 > arg1) /\ (undef92 > 0) /\ (undef93 > undef90), par{arg3 -> undef87, arg4 -> undef88, arg5 -> undef89}> = undef99) /\ (arg2 > 0) /\ (undef100 > arg1) /\ (undef101 > undef99) /\ (undef94 > 0) /\ (((arg2 - 1) - (2 * undef99)) < 2) /\ (((arg2 - 1) - (2 * undef99)) >= 0), par{arg1 -> undef94, arg3 -> arg1, arg4 -> undef97, arg5 -> undef98}> = undef107) /\ (arg2 > 0) /\ (undef108 > undef107) /\ ((arg2 - 1) >= undef109) /\ (undef110 <= arg1) /\ (undef108 > undef109) /\ ((arg2 - 1) >= undef111) /\ (arg2 <= undef111) /\ (undef112 > 0) /\ (arg2 < undef108), par{arg3 -> undef104, arg4 -> undef105, arg5 -> undef106}> = undef118) /\ (arg2 > 0) /\ (undef119 > undef118) /\ ((arg2 - 1) >= undef120) /\ (undef121 <= arg1) /\ (undef119 > undef120) /\ ((arg2 - 1) >= undef122) /\ (arg2 <= undef122) /\ (arg2 < undef119) /\ (undef113 > 0) /\ (((arg2 - 1) - (2 * undef118)) >= 0) /\ (((arg2 - 1) - (2 * undef118)) < 2) /\ (((arg2 - 1) - (2 * undef120)) >= 0) /\ (((arg2 - 1) - (2 * undef120)) < 2) /\ (((arg2 - 1) - (2 * undef122)) < 2) /\ (((arg2 - 1) - (2 * undef122)) >= 0), par{arg1 -> undef113, arg3 -> arg1, arg4 -> undef116, arg5 -> undef117}> ~(1)) /\ ((arg2 - 1) < undef128) /\ (undef128 > 0), par{arg1 -> 0, arg2 -> undef124, arg3 -> 1, arg4 -> undef126, arg5 -> undef127}> = undef134) /\ (undef129 > 0), par{arg1 -> undef129, arg2 -> arg1, arg3 -> arg2, arg4 -> undef132, arg5 -> undef133}> = 0) /\ (undef137 > 0) /\ (arg3 < undef139), par{arg3 -> undef137, arg4 -> ((2 * arg1) + 1), arg5 -> undef139}> = undef145) /\ (arg4 < undef146) /\ (arg3 >= undef140) /\ (arg3 > 0) /\ (undef140 > 0), par{arg1 -> undef140, arg2 -> arg1, arg3 -> arg2, arg4 -> undef143, arg5 -> undef144}> = 0) /\ (undef151 > ((2 * arg1) + 2)) /\ (undef152 > ((2 * arg1) + 2)) /\ (undef153 <= undef154) /\ (undef149 > 0) /\ (undef152 > ((2 * arg1) + 1)), par{arg3 -> undef149, arg4 -> ((2 * arg1) + 1), arg5 -> undef151}> = 0) /\ (undef159 > ((2 * arg1) + 2)) /\ (undef160 > ((2 * arg1) + 2)) /\ (undef161 > undef162) /\ (undef157 > 0) /\ (undef160 > ((2 * arg1) + 1)), par{arg3 -> undef157, arg4 -> ((2 * arg1) + 2), arg5 -> undef159}> arg2) /\ ((2 * arg4) >= 0) /\ (arg1 < undef168) /\ (arg3 > 0), par{arg1 -> arg4, arg3 -> ((2 * arg4) + 1), arg4 -> undef166, arg5 -> undef167}> undef170, arg2 -> undef171, arg3 -> undef172, arg4 -> undef173, arg5 -> undef174}> Fresh variables: undef1, undef4, undef5, undef8, undef9, undef10, undef11, undef14, undef15, undef16, undef17, undef18, undef19, undef22, undef23, undef24, undef27, undef28, undef29, undef30, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef41, undef42, undef43, undef46, undef47, undef48, undef50, undef51, undef52, undef53, undef56, undef57, undef58, undef59, undef60, undef62, undef63, undef64, undef65, undef68, undef69, undef70, undef71, undef72, undef73, undef74, undef75, undef77, undef78, undef79, undef80, undef81, undef82, undef83, undef84, undef87, undef88, undef89, undef90, undef91, undef92, undef93, undef94, undef97, undef98, undef99, undef100, undef101, undef104, undef105, undef106, undef107, undef108, undef109, undef110, undef111, undef112, undef113, undef116, undef117, undef118, undef119, undef120, undef121, undef122, undef124, undef126, undef127, undef128, undef129, undef132, undef133, undef134, undef137, undef139, undef140, undef143, undef144, undef145, undef146, undef149, undef151, undef152, undef153, undef154, undef157, undef159, undef160, undef161, undef162, undef166, undef167, undef168, undef169, undef170, undef171, undef172, undef173, undef174, Undef variables: undef1, undef4, undef5, undef8, undef9, undef10, undef11, undef14, undef15, undef16, undef17, undef18, undef19, undef22, undef23, undef24, undef27, undef28, undef29, undef30, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef41, undef42, undef43, undef46, undef47, undef48, undef50, undef51, undef52, undef53, undef56, undef57, undef58, undef59, undef60, undef62, undef63, undef64, undef65, undef68, undef69, undef70, undef71, undef72, undef73, undef74, undef75, undef77, undef78, undef79, undef80, undef81, undef82, undef83, undef84, undef87, undef88, undef89, undef90, undef91, undef92, undef93, undef94, undef97, undef98, undef99, undef100, undef101, undef104, undef105, undef106, undef107, undef108, undef109, undef110, undef111, undef112, undef113, undef116, undef117, undef118, undef119, undef120, undef121, undef122, undef124, undef126, undef127, undef128, undef129, undef132, undef133, undef134, undef137, undef139, undef140, undef143, undef144, undef145, undef146, undef149, undef151, undef152, undef153, undef154, undef157, undef159, undef160, undef161, undef162, undef166, undef167, undef168, undef169, undef170, undef171, undef172, undef173, undef174, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef170 > 0) /\ (undef1 > 0)> = undef11) /\ (arg2 < undef11) /\ (undef11 > ~(1)) /\ (arg1 > 0) /\ (arg2 < undef24) /\ (undef19 > 0), par{arg1 -> undef19, arg2 -> (arg2 + 1), arg3 -> arg3}> ~(1)) /\ (undef17 > arg2) /\ (arg3 < undef17) /\ (undef18 > ~(1)) /\ (arg3 > ~(1)) /\ (arg1 > 0) /\ (arg2 < undef24) /\ (undef19 > 0), par{arg1 -> undef19, arg2 -> (arg2 + 1), arg3 -> (arg3 + 1)}> = undef30) /\ (arg3 <= undef30) /\ (arg1 > 0), par{arg1 -> 0, arg2 -> 0, arg3 -> undef27}> = undef36), par{arg1 -> (undef36 - 1), arg3 -> undef33}> 0), par{arg1 -> (arg1 + 1), arg2 -> undef38, arg3 -> undef39}> 0), par{arg1 -> undef60, arg3 -> undef62}> ~(1)) /\ (undef48 > 0) /\ (undef53 > 0) /\ (undef48 > 0) /\ (arg1 < undef59), par{arg1 -> (arg1 - 1), arg2 -> undef50, arg3 -> undef56}> ~(1)) /\ ((arg2 - 1) < undef128) /\ (undef128 > 0), par{arg1 -> 0, arg2 -> undef124, arg3 -> 1}> = undef71) /\ (arg2 > 0) /\ (undef72 > undef71) /\ ((arg2 - 1) >= undef73) /\ (undef74 <= arg1) /\ (undef72 > undef73) /\ ((arg2 - 1) >= undef75) /\ (arg2 < undef72) /\ (arg2 > undef75) /\ ((arg2 - 1) >= undef81) /\ (arg2 > 0) /\ (undef82 > undef81) /\ ((arg2 - 1) >= undef83) /\ (undef84 <= arg1) /\ (undef82 > undef83) /\ ((arg2 - 1) >= undef77) /\ (arg2 > undef77) /\ (arg2 < undef82) /\ (((arg2 - 1) - (2 * undef81)) >= 0) /\ (((arg2 - 1) - (2 * undef81)) < 2) /\ (((arg2 - 1) - (2 * undef83)) >= 0) /\ (((arg2 - 1) - (2 * undef83)) < 2) /\ (((arg2 - 1) - (2 * undef77)) < 2) /\ (((arg2 - 1) - (2 * undef77)) >= 0), par{arg2 -> undef77, arg3 -> undef78}> = undef71) /\ (arg2 > 0) /\ (undef72 > undef71) /\ ((arg2 - 1) >= undef73) /\ (undef74 <= arg1) /\ (undef72 > undef73) /\ ((arg2 - 1) >= undef75) /\ (arg2 < undef72) /\ (arg2 > undef75) /\ ((arg2 - 1) >= undef99) /\ (arg2 > 0) /\ (undef100 > arg1) /\ (undef101 > undef99) /\ (undef94 > 0) /\ (((arg2 - 1) - (2 * undef99)) < 2) /\ (((arg2 - 1) - (2 * undef99)) >= 0), par{arg1 -> undef94, arg3 -> arg1}> = undef90) /\ (arg2 > 0) /\ (undef91 > arg1) /\ (undef92 > 0) /\ (undef93 > undef90) /\ ((arg2 - 1) >= undef81) /\ (arg2 > 0) /\ (undef82 > undef81) /\ ((arg2 - 1) >= undef83) /\ (undef84 <= arg1) /\ (undef82 > undef83) /\ ((arg2 - 1) >= undef77) /\ (arg2 > undef77) /\ (arg2 < undef82) /\ (((arg2 - 1) - (2 * undef81)) >= 0) /\ (((arg2 - 1) - (2 * undef81)) < 2) /\ (((arg2 - 1) - (2 * undef83)) >= 0) /\ (((arg2 - 1) - (2 * undef83)) < 2) /\ (((arg2 - 1) - (2 * undef77)) < 2) /\ (((arg2 - 1) - (2 * undef77)) >= 0), par{arg2 -> undef77, arg3 -> undef78}> = undef90) /\ (arg2 > 0) /\ (undef91 > arg1) /\ (undef92 > 0) /\ (undef93 > undef90) /\ ((arg2 - 1) >= undef99) /\ (arg2 > 0) /\ (undef100 > arg1) /\ (undef101 > undef99) /\ (undef94 > 0) /\ (((arg2 - 1) - (2 * undef99)) < 2) /\ (((arg2 - 1) - (2 * undef99)) >= 0), par{arg1 -> undef94, arg3 -> arg1}> = undef134) /\ (undef129 > 0), par{arg1 -> undef129, arg2 -> arg1, arg3 -> arg2}> = 0) /\ (undef137 > 0) /\ (arg3 < undef139) /\ (arg2 >= undef145) /\ (((2 * arg1) + 1) < undef146) /\ (undef137 >= undef140) /\ (undef137 > 0) /\ (undef140 > 0), par{arg1 -> undef140, arg2 -> arg1, arg3 -> arg2}> = 0) /\ (undef137 > 0) /\ (arg3 < undef139) /\ (((2 * arg1) + 1) < undef168) /\ (undef169 > arg2) /\ ((2 * ((2 * arg1) + 1)) >= 0) /\ (arg1 < undef168) /\ (undef137 > 0), par{arg1 -> ((2 * arg1) + 1), arg3 -> ((2 * ((2 * arg1) + 1)) + 1)}> = 0) /\ (undef151 > ((2 * arg1) + 2)) /\ (undef152 > ((2 * arg1) + 2)) /\ (undef153 <= undef154) /\ (undef149 > 0) /\ (undef152 > ((2 * arg1) + 1)) /\ (arg2 >= undef145) /\ (((2 * arg1) + 1) < undef146) /\ (undef149 >= undef140) /\ (undef149 > 0) /\ (undef140 > 0), par{arg1 -> undef140, arg2 -> arg1, arg3 -> arg2}> = 0) /\ (undef151 > ((2 * arg1) + 2)) /\ (undef152 > ((2 * arg1) + 2)) /\ (undef153 <= undef154) /\ (undef149 > 0) /\ (undef152 > ((2 * arg1) + 1)) /\ (((2 * arg1) + 1) < undef168) /\ (undef169 > arg2) /\ ((2 * ((2 * arg1) + 1)) >= 0) /\ (arg1 < undef168) /\ (undef149 > 0), par{arg1 -> ((2 * arg1) + 1), arg3 -> ((2 * ((2 * arg1) + 1)) + 1)}> = 0) /\ (undef159 > ((2 * arg1) + 2)) /\ (undef160 > ((2 * arg1) + 2)) /\ (undef161 > undef162) /\ (undef157 > 0) /\ (undef160 > ((2 * arg1) + 1)) /\ (arg2 >= undef145) /\ (((2 * arg1) + 2) < undef146) /\ (undef157 >= undef140) /\ (undef157 > 0) /\ (undef140 > 0), par{arg1 -> undef140, arg2 -> arg1, arg3 -> arg2}> = 0) /\ (undef159 > ((2 * arg1) + 2)) /\ (undef160 > ((2 * arg1) + 2)) /\ (undef161 > undef162) /\ (undef157 > 0) /\ (undef160 > ((2 * arg1) + 1)) /\ (((2 * arg1) + 2) < undef168) /\ (undef169 > arg2) /\ ((2 * ((2 * arg1) + 2)) >= 0) /\ (arg1 < undef168) /\ (undef157 > 0), par{arg1 -> ((2 * arg1) + 2), arg3 -> ((2 * ((2 * arg1) + 2)) + 1)}> Fresh variables: undef1, undef4, undef5, undef8, undef9, undef10, undef11, undef14, undef15, undef16, undef17, undef18, undef19, undef22, undef23, undef24, undef27, undef28, undef29, undef30, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef41, undef42, undef43, undef46, undef47, undef48, undef50, undef51, undef52, undef53, undef56, undef57, undef58, undef59, undef60, undef62, undef63, undef64, undef65, undef68, undef69, undef70, undef71, undef72, undef73, undef74, undef75, undef77, undef78, undef79, undef80, undef81, undef82, undef83, undef84, undef87, undef88, undef89, undef90, undef91, undef92, undef93, undef94, undef97, undef98, undef99, undef100, undef101, undef104, undef105, undef106, undef107, undef108, undef109, undef110, undef111, undef112, undef113, undef116, undef117, undef118, undef119, undef120, undef121, undef122, undef124, undef126, undef127, undef128, undef129, undef132, undef133, undef134, undef137, undef139, undef140, undef143, undef144, undef145, undef146, undef149, undef151, undef152, undef153, undef154, undef157, undef159, undef160, undef161, undef162, undef166, undef167, undef168, undef169, undef170, undef171, undef172, undef173, undef174, Undef variables: undef1, undef4, undef5, undef8, undef9, undef10, undef11, undef14, undef15, undef16, undef17, undef18, undef19, undef22, undef23, undef24, undef27, undef28, undef29, undef30, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef41, undef42, undef43, undef46, undef47, undef48, undef50, undef51, undef52, undef53, undef56, undef57, undef58, undef59, undef60, undef62, undef63, undef64, undef65, undef68, undef69, undef70, undef71, undef72, undef73, undef74, undef75, undef77, undef78, undef79, undef80, undef81, undef82, undef83, undef84, undef87, undef88, undef89, undef90, undef91, undef92, undef93, undef94, undef97, undef98, undef99, undef100, undef101, undef104, undef105, undef106, undef107, undef108, undef109, undef110, undef111, undef112, undef113, undef116, undef117, undef118, undef119, undef120, undef121, undef122, undef124, undef126, undef127, undef128, undef129, undef132, undef133, undef134, undef137, undef139, undef140, undef143, undef144, undef145, undef146, undef149, undef151, undef152, undef153, undef154, undef157, undef159, undef160, undef161, undef162, undef166, undef167, undef168, undef169, undef170, undef171, undef172, undef173, undef174, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef19, arg2 -> 1 + arg2, rest remain the same}> undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Graph 2: Transitions: 1 + arg1, arg2 -> undef38, arg3 -> undef39, rest remain the same}> Variables: arg1, arg2, arg3 Graph 3: Transitions: undef77, arg3 -> undef78, rest remain the same}> undef77, arg3 -> undef78, rest remain the same}> Variables: arg1, arg2, arg3 Graph 4: Transitions: Variables: Graph 5: Transitions: -1 + arg1, arg2 -> undef50, arg3 -> undef56, rest remain the same}> Variables: arg1, arg2, arg3 Graph 6: Transitions: 1 + 2*arg1, arg3 -> 3 + 4*arg1, rest remain the same}> 1 + 2*arg1, arg3 -> 3 + 4*arg1, rest remain the same}> 2 + 2*arg1, arg3 -> 5 + 4*arg1, rest remain the same}> Variables: arg1, arg2, arg3 Graph 7: Transitions: Variables: Precedence: Graph 0 Graph 1 Graph 2 0, arg2 -> 0, arg3 -> undef27, rest remain the same}> Graph 3 undef60, arg3 -> undef62, rest remain the same}> Graph 4 undef94, arg3 -> arg1, rest remain the same}> undef94, arg3 -> arg1, rest remain the same}> Graph 5 -1 + undef36, arg3 -> undef33, rest remain the same}> Graph 6 0, arg2 -> undef124, arg3 -> 1, rest remain the same}> Graph 7 undef129, arg2 -> arg1, arg3 -> arg2, rest remain the same}> undef140, arg2 -> arg1, arg3 -> arg2, rest remain the same}> undef140, arg2 -> arg1, arg3 -> arg2, rest remain the same}> undef140, arg2 -> arg1, arg3 -> arg2, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ( 4 , 2 ) ( 5 , 5 ) ( 8 , 3 ) ( 10 , 4 ) ( 11 , 6 ) ( 12 , 7 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.003497 Some transition disabled by a set of invariant(s): Invariant at l2: arg3 <= arg2 Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef19, arg2 -> 1 + arg2, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Checking unfeasibility... Time used: 0.001518 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000597s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002527s Trying to remove transition: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.004579s Time used: 0.004424 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.000689s Time used: 4.00036 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.007820s Time used: 4.00034 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.009439s Time used: 1.00039 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.008613s Time used: 0.00547 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000418s Time used: 1.00041 LOG: SAT solveNonLinear - Elapsed time: 1.009031s Cost: 1; Total time: 1.00588 Termination implied by a set of invariant(s): Invariant at l2: 0 <= 1 + arg3 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Quasi-ranking function: 50000 + arg2 - 2*arg3 New Graphs: Transitions: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000629s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003053s Trying to remove transition: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.007482s Time used: 0.007234 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.001917s Time used: 4.00151 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.003645s Time used: 4.00083 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.003831s Time used: 1.00036 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.013183s Time used: 0.010433 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000651s Time used: 1.00064 LOG: SAT solveNonLinear - Elapsed time: 1.013834s Cost: 1; Total time: 1.01107 Termination implied by a set of invariant(s): Invariant at l2: arg2 <= 1 + arg3 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Quasi-ranking function: 50000 - arg2 New Graphs: Transitions: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000722s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003609s Trying to remove transition: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.008837s Time used: 0.008474 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.001019s Time used: 4.00062 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.010093s Time used: 4.00053 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.004337s Time used: 1.00046 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.013753s Time used: 0.010268 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.001875s Time used: 1.00183 LOG: SAT solveNonLinear - Elapsed time: 1.015628s Cost: 1; Total time: 1.0121 Termination implied by a set of invariant(s): Invariant at l2: 0 <= 1 + arg2 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Quasi-ranking function: 50000 - arg3 New Graphs: Transitions: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000745s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003595s Trying to remove transition: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.009709s Time used: 0.009333 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.001358s Time used: 4.00085 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.004823s Time used: 4.00054 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.003570s Time used: 1.00005 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.014826s Time used: 0.010181 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000883s Time used: 1.00088 LOG: SAT solveNonLinear - Elapsed time: 1.015709s Cost: 1; Total time: 1.01106 Termination implied by a set of invariant(s): Invariant at l2: 0 <= 1 + arg1 + arg2 + arg3 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Quasi-ranking function: 50000 - 2*arg2 + arg3 New Graphs: Transitions: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000835s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004176s Trying to remove transition: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012555s Time used: 0.012142 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.001867s Time used: 4.00144 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.003467s Time used: 4.00093 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.012043s Time used: 1.00042 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.015737s Time used: 0.012013 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000778s Time used: 1.00076 LOG: SAT solveNonLinear - Elapsed time: 1.016516s Cost: 1; Total time: 1.01278 Termination implied by a set of invariant(s): Invariant at l2: arg2 <= 1 + arg1 + arg3 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Quasi-ranking function: 50000 - arg2 - arg3 New Graphs: Transitions: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000928s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.006146s Trying to remove transition: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.011701s Time used: 0.011202 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.002023s Time used: 4.00156 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.003351s Time used: 4.00093 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.004067s Time used: 1.00077 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.005477s Time used: 4.00203 Termination failed. Trying to show unreachability... Proving unreachability of entry: LOG: CALL check - Post:1 <= 0 - Process 1 * Exit transition: * Postcondition : 1 <= 0 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004488s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.004550s Cannot prove unreachability Proving non-termination of subgraph 1 Transitions: undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3 Checking that every undef value has an assignment... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001294s Checking conditional non-termination of SCC {l2}... EXIT TRANSITIONS: Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.022249s Time used: 0.02196 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.054211s Time used: 0.054208 LOG: SAT solveNonLinear - Elapsed time: 0.076460s Cost: 1; Total time: 0.076168 Minimizing number of undef constraints... LOG: CALL solveNonLinear LOG: RETURN solveNonLinear - Elapsed time: 0.015023s Number of undef constraints reduced! Non-termination implied by a set of quasi-invariant(s): Quasi-invariant at l2: 1 <= arg1 Strengthening and disabling EXIT transitions... Closed exits from l2: 1 Strengthening exit transition (result): Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Checking conditional non-termination of SCC {l2}... EXIT TRANSITIONS: Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.015891s Time used: 0.015827 LOG: SAT solveNonLinear - Elapsed time: 0.015891s Cost: 0; Total time: 0.015827 Minimizing number of undef constraints... LOG: CALL solveNonLinear LOG: RETURN solveNonLinear - Elapsed time: 0.005658s Number of undef constraints reduced! Non-termination implied by a set of quasi-invariant(s): Quasi-invariant at l2: 0 <= arg3 Strengthening and disabling EXIT transitions... Closed exits from l2: 1 Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg2 -> 1 + arg2, arg3 -> 1 + arg3, rest remain the same}> Calling reachability with... Transition: Conditions: 1 <= arg1, 0 <= arg3, OPEN EXITS: --- Reachability graph --- > Graph without transitions. Calling reachability with... Transition: Conditions: 1 <= arg1, 0 <= arg3, OPEN EXITS: > Conditions are reachable! Program does NOT terminate