YES Solver Timeout: 4 Global Timeout: 300 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg1 > 0) /\ (undef1 > 0), par{arg1 -> undef1, arg2 -> (arg2 - 1), arg3 -> 0, arg4 -> arg2}> 0) /\ (undef6 > arg3) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0), par{arg1 -> undef5, arg2 -> undef6, arg3 -> arg4, arg4 -> undef8}> = undef9) /\ (arg2 < 1) /\ (arg1 > 0) /\ (undef9 > 0), par{arg1 -> undef9, arg2 -> 1, arg3 -> arg4, arg4 -> undef12}> 0) /\ (arg1 > 0) /\ (undef13 > 0), par{arg1 -> undef13, arg2 -> (arg2 - 1), arg3 -> undef15}> 0) /\ (undef21 > ~(1)) /\ (arg1 > 0), par{arg1 -> (undef21 - 1), arg3 -> undef19, arg4 -> undef20}> ~(1)) /\ (undef26 > 0) /\ (undef26 < arg2) /\ (arg1 > 0) /\ (undef26 < undef23), par{arg1 -> (arg1 - 1), arg2 -> undef23, arg3 -> undef24, arg4 -> undef25}> 0) /\ (undef31 < arg2) /\ (arg2 > ~(1)), par{arg1 -> (arg1 - 1), arg2 -> 1, arg3 -> undef29, arg4 -> undef30}> undef32, arg2 -> undef33, arg3 -> undef34, arg4 -> undef35}> Fresh variables: undef1, undef5, undef6, undef8, undef9, undef12, undef13, undef15, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef33, undef34, undef35, Undef variables: undef1, undef5, undef6, undef8, undef9, undef12, undef13, undef15, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef33, undef34, undef35, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef32 > 0) /\ (undef1 > 0)> 0) /\ (undef6 > arg3) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0) /\ (arg4 > 0) /\ (undef21 > ~(1)) /\ (undef5 > 0), par{arg1 -> (undef21 - 1), arg2 -> undef6, arg3 -> undef19, arg4 -> undef20}> = undef9) /\ (arg2 < 1) /\ (arg1 > 0) /\ (undef9 > 0) /\ (arg4 > 0) /\ (undef21 > ~(1)) /\ (undef9 > 0), par{arg1 -> (undef21 - 1), arg2 -> 1, arg3 -> undef19, arg4 -> undef20}> 0) /\ (arg1 > 0) /\ (undef13 > 0), par{arg1 -> undef13, arg2 -> (arg2 - 1), arg3 -> undef15}> ~(1)) /\ (undef26 > 0) /\ (undef26 < arg2) /\ (arg1 > 0) /\ (undef26 < undef23), par{arg1 -> (arg1 - 1), arg2 -> undef23, arg3 -> undef24, arg4 -> undef25}> 0) /\ (undef31 < arg2) /\ (arg2 > ~(1)), par{arg1 -> (arg1 - 1), arg2 -> 1, arg3 -> undef29, arg4 -> undef30}> Fresh variables: undef1, undef5, undef6, undef8, undef9, undef12, undef13, undef15, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef33, undef34, undef35, Undef variables: undef1, undef5, undef6, undef8, undef9, undef12, undef13, undef15, undef19, undef20, undef21, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef33, undef34, undef35, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef13, arg2 -> -1 + arg2, arg3 -> undef15, rest remain the same}> Variables: arg1, arg2, arg3 Graph 2: Transitions: -1 + arg1, arg2 -> undef23, arg3 -> undef24, arg4 -> undef25, rest remain the same}> -1 + arg1, arg2 -> 1, arg3 -> undef29, arg4 -> undef30, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Precedence: Graph 0 Graph 1 Graph 2 -1 + undef21, arg2 -> undef6, arg3 -> undef19, arg4 -> undef20, rest remain the same}> -1 + undef21, arg2 -> 1, arg3 -> undef19, arg4 -> undef20, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ( 4 , 2 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.002317 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000665s Ranking function: -1 + arg2 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.004768 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001280s Ranking function: -1 + arg1 New Graphs: Program Terminates