YES Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg2 > 0) /\ (arg1 > 0), par{arg1 -> undef1, arg3 -> 1, arg4 -> undef4, arg5 -> undef5, arg6 -> undef6}> 0) /\ (arg1 > 0) /\ (undef7 > ~(1)), par{arg1 -> undef7, arg2 -> undef8, arg3 -> undef9, arg4 -> undef10, arg5 -> undef11, arg6 -> undef12}> ~(1)) /\ (arg2 > 0) /\ (undef13 <= arg1) /\ (arg1 > 0) /\ (undef13 > 0) /\ (undef14 > 0), par{arg1 -> undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, arg5 -> undef17, arg6 -> undef18}> 0) /\ (undef20 > 0) /\ (undef21 > 1), par{arg1 -> undef20, arg2 -> undef21, arg3 -> arg2, arg4 -> undef23, arg5 -> undef24, arg6 -> undef25}> 0) /\ (arg3 > 1) /\ (undef26 <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef26 > 0), par{arg1 -> undef26, arg2 -> undef27, arg3 -> undef28, arg4 -> undef29, arg5 -> undef30, arg6 -> undef31}> ~(1)) /\ (arg1 > 0) /\ (arg3 > 0) /\ (arg3 < arg2) /\ (undef36 > ~(1)), par{arg2 -> (arg1 - 1), arg3 -> 0, arg4 -> undef36, arg5 -> arg2, arg6 -> (arg3 + 1)}> 0) /\ (arg4 > arg3) /\ (arg1 > 0) /\ (arg6 > 1) /\ (arg2 < arg1) /\ ((arg2 - 1) < arg1) /\ (arg2 > ~(1)) /\ ((arg2 - 1) < arg2), par{arg1 -> (arg2 - 1), arg2 -> arg5, arg3 -> arg6, arg4 -> undef42, arg5 -> undef43, arg6 -> undef44}> 0) /\ (arg4 > arg3) /\ (arg1 > 0) /\ (arg6 > 1) /\ (arg2 < arg1) /\ ((arg2 - 1) < arg1) /\ (arg2 > ~(1)) /\ ((arg2 - 1) < arg2), par{arg3 -> (arg3 + 1)}> 0) /\ (arg4 > arg3) /\ (arg1 > 0) /\ (arg6 > 1) /\ (arg2 < arg1) /\ ((arg2 - 1) < arg1) /\ (arg2 > ~(1)) /\ ((arg2 - 1) < arg2), par{arg3 -> (arg3 + 1), arg6 -> undef56}> 0) /\ (undef57 > ~(1)), par{arg1 -> undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62}> 0) /\ (undef63 > ~(1)), par{arg1 -> undef63, arg2 -> undef64, arg3 -> undef65, arg4 -> undef66, arg5 -> undef67, arg6 -> undef68}> 3) /\ (undef69 > 5) /\ (undef70 > ~(1)) /\ (undef72 > ~(1)), par{arg1 -> undef69, arg2 -> undef70, arg3 -> arg2, arg4 -> undef72, arg5 -> undef73, arg6 -> undef74}> 0) /\ (undef75 > 10) /\ (undef76 > ~(1)) /\ (undef78 > ~(1)), par{arg1 -> undef75, arg2 -> undef76, arg3 -> arg2, arg4 -> undef78, arg5 -> undef79, arg6 -> undef80}> 4) /\ (arg2 > ~(1)) /\ (arg4 > ~(1)) /\ (undef81 > ~(1)), par{arg1 -> undef81, arg2 -> arg3, arg3 -> undef83, arg4 -> undef84, arg5 -> undef85, arg6 -> undef86}> undef87, arg2 -> undef88, arg3 -> undef89, arg4 -> undef90, arg5 -> undef91, arg6 -> undef92}> Fresh variables: undef1, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef36, undef42, undef43, undef44, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef69, undef70, undef72, undef73, undef74, undef75, undef76, undef78, undef79, undef80, undef81, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, undef91, undef92, Undef variables: undef1, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef36, undef42, undef43, undef44, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef69, undef70, undef72, undef73, undef74, undef75, undef76, undef78, undef79, undef80, undef81, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, undef91, undef92, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef88 > 0) /\ (undef87 > 0) /\ (undef88 > ~(1)) /\ (undef1 > 0) /\ (1 > 0) /\ (1 < undef88) /\ (undef36 > ~(1)), par{arg1 -> undef1, arg2 -> (undef1 - 1), arg3 -> 0, arg4 -> undef36, arg5 -> undef88, arg6 -> (1 + 1)}> 0) /\ (undef87 > 0) /\ (undef7 > ~(1)) /\ ((undef57 + 1) <= undef7) /\ (undef7 > 0) /\ (undef57 > ~(1)), par{arg1 -> undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62}> ~(1)) /\ (undef88 > 0) /\ (undef13 <= undef87) /\ (undef87 > 0) /\ (undef13 > 0) /\ (undef14 > 0) /\ (undef32 > 0) /\ (undef15 > 1) /\ (undef26 <= undef14) /\ (undef13 > 0) /\ (undef14 > 0) /\ (undef26 > 0) /\ ((undef57 + 1) <= undef26) /\ (undef26 > 0) /\ (undef57 > ~(1)), par{arg1 -> undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62}> 0) /\ (arg4 > arg3) /\ (arg1 > 0) /\ (arg6 > 1) /\ (arg2 < arg1) /\ ((arg2 - 1) < arg1) /\ (arg2 > ~(1)) /\ ((arg2 - 1) < arg2) /\ (arg5 > ~(1)) /\ ((arg2 - 1) > 0) /\ (arg6 > 0) /\ (arg6 < arg5) /\ (undef36 > ~(1)), par{arg1 -> (arg2 - 1), arg2 -> ((arg2 - 1) - 1), arg3 -> 0, arg4 -> undef36, arg5 -> arg5, arg6 -> (arg6 + 1)}> 0) /\ (arg4 > arg3) /\ (arg1 > 0) /\ (arg6 > 1) /\ (arg2 < arg1) /\ ((arg2 - 1) < arg1) /\ (arg2 > ~(1)) /\ ((arg2 - 1) < arg2), par{arg3 -> (arg3 + 1)}> 0) /\ (arg4 > arg3) /\ (arg1 > 0) /\ (arg6 > 1) /\ (arg2 < arg1) /\ ((arg2 - 1) < arg1) /\ (arg2 > ~(1)) /\ ((arg2 - 1) < arg2), par{arg3 -> (arg3 + 1), arg6 -> undef56}> 0) /\ (undef63 > ~(1)) /\ ((undef57 + 1) <= undef63) /\ (undef63 > 0) /\ (undef57 > ~(1)), par{arg1 -> undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62}> 3) /\ (undef69 > 5) /\ (undef70 > ~(1)) /\ (undef72 > ~(1)) /\ ((undef81 + 4) <= undef69) /\ (undef81 <= undef70) /\ (undef81 <= undef72) /\ (undef69 > 4) /\ (undef70 > ~(1)) /\ (undef72 > ~(1)) /\ (undef81 > ~(1)), par{arg1 -> undef81, arg2 -> arg2, arg3 -> undef83, arg4 -> undef84, arg5 -> undef85, arg6 -> undef86}> 0) /\ (undef75 > 10) /\ (undef76 > ~(1)) /\ (undef78 > ~(1)) /\ ((undef81 + 4) <= undef75) /\ (undef81 <= undef76) /\ (undef81 <= undef78) /\ (undef75 > 4) /\ (undef76 > ~(1)) /\ (undef78 > ~(1)) /\ (undef81 > ~(1)), par{arg1 -> undef81, arg2 -> arg2, arg3 -> undef83, arg4 -> undef84, arg5 -> undef85, arg6 -> undef86}> Fresh variables: undef1, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef36, undef42, undef43, undef44, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef69, undef70, undef72, undef73, undef74, undef75, undef76, undef78, undef79, undef80, undef81, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, undef91, undef92, Undef variables: undef1, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef36, undef42, undef43, undef44, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, undef68, undef69, undef70, undef72, undef73, undef74, undef75, undef76, undef78, undef79, undef80, undef81, undef83, undef84, undef85, undef86, undef87, undef88, undef89, undef90, undef91, undef92, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62, rest remain the same}> undef81, arg3 -> undef83, arg4 -> undef84, arg5 -> undef85, arg6 -> undef86, rest remain the same}> undef81, arg3 -> undef83, arg4 -> undef84, arg5 -> undef85, arg6 -> undef86, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Graph 2: Transitions: -1 + arg2, arg2 -> -2 + arg2, arg3 -> 0, arg4 -> undef36, arg6 -> 1 + arg6, rest remain the same}> 1 + arg3, rest remain the same}> 1 + arg3, arg6 -> undef56, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Precedence: Graph 0 Graph 1 undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62, rest remain the same}> undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62, rest remain the same}> Graph 2 undef1, arg2 -> -1 + undef1, arg3 -> 0, arg4 -> undef36, arg5 -> undef88, arg6 -> 2, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 6 , 2 ) ( 7 , 1 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.016214 Checking conditional termination of SCC {l7}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004887s Ranking function: -10 + (5 / 2)*arg1 New Graphs: Transitions: undef57, arg2 -> undef58, arg3 -> undef59, arg4 -> undef60, arg5 -> undef61, arg6 -> undef62, rest remain the same}> undef81, arg3 -> undef83, arg4 -> undef84, arg5 -> undef85, arg6 -> undef86, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5, arg6 Checking conditional termination of SCC {l7}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002592s Ranking function: arg1 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.172596 Checking conditional termination of SCC {l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005616s Ranking function: (~(13) / 2) + (3 / 2)*arg1 - arg2 + (5 / 3)*arg5 New Graphs: Transitions: 1 + arg3, rest remain the same}> 1 + arg3, arg6 -> undef56, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg6 Checking conditional termination of SCC {l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002234s Ranking function: -1 - arg3 + arg4 New Graphs: Program Terminates