YES Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg2 > 0) /\ (undef1 <= arg1) /\ (arg1 > 0) /\ (undef1 > 0) /\ (undef2 > 0), par{arg1 -> undef1, arg2 -> undef2, arg3 -> undef3, arg4 -> undef4, arg5 -> undef5, arg6 -> undef6}> = undef8) /\ (undef8 <= arg2) /\ (undef9 <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef8 > 0) /\ (undef9 > 0) /\ ((arg3 + 2) <= arg2) /\ ((arg5 + 2) <= arg2) /\ ((arg4 + 2) <= arg2), par{arg1 -> undef8, arg2 -> undef9, arg6 -> undef13}> 1) /\ (undef15 <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef14 > 0) /\ (undef15 > 0) /\ ((arg3 + 2) <= arg2) /\ ((arg5 + 2) <= arg2) /\ ((arg4 + 2) <= arg2), par{arg1 -> undef14, arg2 -> undef15, arg3 -> undef16, arg4 -> undef17, arg5 -> undef18, arg6 -> undef19}> ~(1)) /\ (arg2 > 1) /\ (undef23 > ~(1)) /\ (arg1 > 0) /\ (undef21 > 1), par{arg1 -> undef21, arg2 -> 0, arg3 -> undef23, arg4 -> arg2, arg5 -> 2, arg6 -> undef26}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef33 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef27 > 3) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef27, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef32}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef40 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef34 > 3) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef34, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef39}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef47 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef41 > 2) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef41, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef46}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef54 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef48 > 2) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef48, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef53}> 2) /\ (arg2 > 2) /\ (undef55 > ~(1)) /\ (undef56 > ~(1)), par{arg1 -> undef55, arg2 -> undef56, arg3 -> undef57, arg4 -> undef58, arg5 -> undef59, arg6 -> undef60}> 2) /\ (arg2 > 2) /\ (undef61 > ~(1)) /\ (undef62 > ~(1)), par{arg1 -> undef61, arg2 -> undef62, arg3 -> undef63, arg4 -> undef64, arg5 -> undef65, arg6 -> undef66}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef68 > ~(1)) /\ (arg5 < arg4) /\ (undef67 <= arg1) /\ (arg1 > 0) /\ (undef67 > 0) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef67, arg2 -> undef68, arg3 -> arg4, arg4 -> arg6, arg5 -> undef71, arg6 -> undef72}> 1) /\ (arg4 < arg2) /\ ((undef73 + 2) <= arg1) /\ (arg1 > 2) /\ (undef73 > 0) /\ ((arg4 + 2) <= arg1) /\ ((undef76 + 4) <= arg1), par{arg1 -> undef73, arg4 -> undef76, arg5 -> undef77, arg6 -> undef78}> 1) /\ (arg4 >= arg2) /\ ((undef79 + 2) <= arg1) /\ (arg1 > 2) /\ (undef79 > 0) /\ ((arg4 + 2) <= arg1) /\ ((undef82 + 4) <= arg1), par{arg1 -> undef79, arg4 -> undef82, arg5 -> undef83, arg6 -> undef84}> undef85, arg2 -> undef86, arg3 -> undef87, arg4 -> undef88, arg5 -> undef89, arg6 -> undef90}> Fresh variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef26, undef27, undef32, undef33, undef34, undef39, undef40, undef41, undef46, undef47, undef48, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef71, undef72, undef73, undef76, undef77, undef78, undef79, undef82, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, Undef variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef26, undef27, undef32, undef33, undef34, undef39, undef40, undef41, undef46, undef47, undef48, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef71, undef72, undef73, undef76, undef77, undef78, undef79, undef82, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef86 > 0) /\ (undef1 <= undef85) /\ (undef85 > 0) /\ (undef1 > 0) /\ (undef2 > 0) /\ (undef14 <= undef2) /\ (undef20 > 1) /\ (undef15 <= undef2) /\ (undef1 > 0) /\ (undef2 > 0) /\ (undef14 > 0) /\ (undef15 > 0) /\ ((undef3 + 2) <= undef2) /\ ((undef5 + 2) <= undef2) /\ ((undef4 + 2) <= undef2), par{arg1 -> undef14, arg2 -> undef15, arg3 -> undef16, arg4 -> undef17, arg5 -> undef18, arg6 -> undef19}> ~(1)) /\ (undef86 > 1) /\ (undef23 > ~(1)) /\ (undef85 > 0) /\ (undef21 > 1), par{arg1 -> undef21, arg2 -> 0, arg3 -> undef23, arg4 -> undef86, arg5 -> 2, arg6 -> undef26}> 2) /\ (arg2 > 2) /\ (undef55 > ~(1)) /\ (undef56 > ~(1)), par{arg1 -> undef55, arg2 -> undef56, arg3 -> undef57, arg4 -> undef58, arg5 -> undef59, arg6 -> undef60}> 2) /\ (arg2 > 2) /\ (undef61 > ~(1)) /\ (undef62 > ~(1)), par{arg1 -> undef61, arg2 -> undef62, arg3 -> undef63, arg4 -> undef64, arg5 -> undef65, arg6 -> undef66}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef33 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef27 > 3) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef27, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef32}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef40 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef34 > 3) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef34, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef39}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef47 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef41 > 2) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef41, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef46}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef54 > ~(1)) /\ (arg5 < arg4) /\ (arg1 > 0) /\ (undef48 > 2) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef48, arg2 -> (arg2 + 1), arg5 -> (arg5 + 1), arg6 -> undef53}> ~(1)) /\ (arg3 > arg2) /\ (arg3 > 0) /\ (arg4 > 1) /\ (undef68 > ~(1)) /\ (arg5 < arg4) /\ (undef67 <= arg1) /\ (arg1 > 0) /\ (undef67 > 0) /\ ((arg6 + 2) <= arg1), par{arg1 -> undef67, arg2 -> undef68, arg3 -> arg4, arg4 -> arg6, arg5 -> undef71, arg6 -> undef72}> 1) /\ (arg4 < arg2) /\ ((undef73 + 2) <= arg1) /\ (arg1 > 2) /\ (undef73 > 0) /\ ((arg4 + 2) <= arg1) /\ ((undef76 + 4) <= arg1), par{arg1 -> undef73, arg4 -> undef76, arg5 -> undef77, arg6 -> undef78}> 1) /\ (arg4 >= arg2) /\ ((undef79 + 2) <= arg1) /\ (arg1 > 2) /\ (undef79 > 0) /\ ((arg4 + 2) <= arg1) /\ ((undef82 + 4) <= arg1), par{arg1 -> undef79, arg4 -> undef82, arg5 -> undef83, arg6 -> undef84}> Fresh variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef26, undef27, undef32, undef33, undef34, undef39, undef40, undef41, undef46, undef47, undef48, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef71, undef72, undef73, undef76, undef77, undef78, undef79, undef82, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, Undef variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef26, undef27, undef32, undef33, undef34, undef39, undef40, undef41, undef46, undef47, undef48, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef71, undef72, undef73, undef76, undef77, undef78, undef79, undef82, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef27, arg2 -> 1 + arg2, arg5 -> 1 + arg5, arg6 -> undef32, rest remain the same}> undef34, arg2 -> 1 + arg2, arg5 -> 1 + arg5, arg6 -> undef39, rest remain the same}> undef41, arg2 -> 1 + arg2, arg5 -> 1 + arg5, arg6 -> undef46, rest remain the same}> undef48, arg2 -> 1 + arg2, arg5 -> 1 + arg5, arg6 -> undef53, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Graph 2: Transitions: undef73, arg4 -> undef76, arg5 -> undef77, arg6 -> undef78, rest remain the same}> undef79, arg4 -> undef82, arg5 -> undef83, arg6 -> undef84, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Graph 3: Transitions: undef55, arg2 -> undef56, arg3 -> undef57, arg4 -> undef58, arg5 -> undef59, arg6 -> undef60, rest remain the same}> undef61, arg2 -> undef62, arg3 -> undef63, arg4 -> undef64, arg5 -> undef65, arg6 -> undef66, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Precedence: Graph 0 Graph 1 undef21, arg2 -> 0, arg3 -> undef23, arg4 -> undef86, arg5 -> 2, arg6 -> undef26, rest remain the same}> Graph 2 undef67, arg2 -> undef68, arg3 -> arg4, arg4 -> arg6, arg5 -> undef71, arg6 -> undef72, rest remain the same}> Graph 3 undef14, arg2 -> undef15, arg3 -> undef16, arg4 -> undef17, arg5 -> undef18, arg6 -> undef19, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 4 , 3 ) ( 5 , 1 ) ( 6 , 2 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.030177 Checking conditional termination of SCC {l5}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.008000s Ranking function: -13 - arg2 + arg3 + 6*arg4 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.010374 Checking conditional termination of SCC {l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003306s Ranking function: -32 + 16*arg1 - 16*arg2 New Graphs: Transitions: undef73, arg4 -> undef76, arg5 -> undef77, arg6 -> undef78, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Checking conditional termination of SCC {l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001637s Ranking function: (~(3) / 2) + (1 / 2)*arg1 New Graphs: Proving termination of subgraph 3 Checking unfeasibility... Time used: 0.010735 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003486s Ranking function: (~(3) / 2) + (1 / 2)*arg2 New Graphs: Program Terminates