YES Solver Timeout: 4 Global Timeout: 300 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg2 > 0) /\ ((undef1 - 1) <= arg1) /\ ((undef2 - 1) <= arg1) /\ (arg1 > 0) /\ (undef1 > 1) /\ (undef2 > 1), par{arg1 -> undef1, arg2 -> undef2, arg3 -> (undef5 - 2), arg4 -> undef4}> 0) /\ ((undef7 - 2) <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef6 > 0) /\ (undef7 > 2), par{arg1 -> undef6, arg2 -> undef7, arg3 -> (arg3 - 1), arg4 -> undef9}> 1) /\ (arg2 > 1) /\ (undef10 > 1) /\ (undef11 > 1), par{arg1 -> undef10, arg2 -> undef11, arg3 -> undef12, arg4 -> undef13}> 1) /\ (arg2 > 0) /\ (undef14 > 1) /\ (undef15 > ~(1)), par{arg1 -> undef14, arg2 -> undef15, arg3 -> undef16, arg4 -> undef17}> 1) /\ (arg2 > 0) /\ (undef18 > 1) /\ (undef19 > 0), par{arg1 -> undef18, arg2 -> undef19, arg3 -> undef20, arg4 -> undef21}> 1) /\ (arg2 > 0) /\ (undef22 > 1) /\ (undef23 > 0), par{arg1 -> undef22, arg2 -> undef23, arg3 -> undef24, arg4 -> undef25}> 0) /\ (arg2 > 0) /\ (undef26 > ~(1)) /\ (undef27 > 0) /\ (undef28 > 0) /\ (undef29 > ~(1)), par{arg1 -> undef26, arg2 -> undef27, arg3 -> undef28, arg4 -> undef29}> ~(1)) /\ (arg2 > 0) /\ (arg3 > 0) /\ (arg4 > ~(1)) /\ (undef30 > 2) /\ (undef31 > ~(1)), par{arg1 -> undef30, arg2 -> undef31, arg3 -> undef32, arg4 -> undef33}> ~(1)) /\ (arg2 > 0) /\ (arg3 > 0) /\ (arg4 > ~(1)) /\ (undef34 > 2) /\ (undef35 > ~(1)), par{arg1 -> undef34, arg2 -> undef35, arg3 -> undef36, arg4 -> undef37}> 0) /\ (arg4 > 0) /\ (undef41 < arg4) /\ ((undef38 - 2) <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef38 > 2) /\ (undef39 > 0), par{arg1 -> undef38, arg2 -> undef39, arg4 -> undef41}> 0) /\ (undef47 > ~(1)) /\ (undef46 < undef47) /\ ((undef44 - 2) <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef42 > ~(1)) /\ (undef43 > 0) /\ (undef44 > 2) /\ (undef45 > ~(1)), par{arg1 -> undef42, arg2 -> undef43, arg3 -> undef44, arg4 -> undef45}> ~(1)) /\ (undef53 < undef52) /\ ((undef48 - 2) <= arg1) /\ (undef48 <= arg2) /\ (undef49 <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef48 > 2) /\ (undef49 > 0), par{arg1 -> undef48, arg2 -> undef49, arg3 -> undef50, arg4 -> undef51}> undef54, arg2 -> undef55, arg3 -> undef56, arg4 -> undef57}> Fresh variables: undef1, undef2, undef4, undef5, undef6, undef7, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, Undef variables: undef1, undef2, undef4, undef5, undef6, undef7, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef55 > 0) /\ ((undef1 - 1) <= undef54) /\ ((undef2 - 1) <= undef54) /\ (undef54 > 0) /\ (undef1 > 1) /\ (undef2 > 1)> 0) /\ ((undef7 - 2) <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef6 > 0) /\ (undef7 > 2), par{arg1 -> undef6, arg2 -> undef7, arg3 -> (arg3 - 1), arg4 -> undef9}> 1) /\ (arg2 > 1) /\ (undef10 > 1) /\ (undef11 > 1), par{arg1 -> undef10, arg2 -> undef11, arg3 -> undef12, arg4 -> undef13}> 1) /\ (arg2 > 0) /\ (undef14 > 1) /\ (undef15 > ~(1)), par{arg1 -> undef14, arg2 -> undef15, arg3 -> undef16, arg4 -> undef17}> 1) /\ (arg2 > 0) /\ (undef18 > 1) /\ (undef19 > 0), par{arg1 -> undef18, arg2 -> undef19, arg3 -> undef20, arg4 -> undef21}> 1) /\ (arg2 > 0) /\ (undef22 > 1) /\ (undef23 > 0), par{arg1 -> undef22, arg2 -> undef23, arg3 -> undef24, arg4 -> undef25}> 0) /\ (arg2 > 0) /\ (undef26 > ~(1)) /\ (undef27 > 0) /\ (undef28 > 0) /\ (undef29 > ~(1)) /\ (undef31 <= undef26) /\ ((undef31 + 1) <= undef27) /\ (undef31 <= undef29) /\ (undef26 > ~(1)) /\ (undef27 > 0) /\ (undef28 > 0) /\ (undef29 > ~(1)) /\ (undef30 > 2) /\ (undef31 > ~(1)), par{arg1 -> undef30, arg2 -> undef31, arg3 -> undef32, arg4 -> undef33}> 0) /\ (arg2 > 0) /\ (undef26 > ~(1)) /\ (undef27 > 0) /\ (undef28 > 0) /\ (undef29 > ~(1)) /\ ((undef34 - 3) <= undef26) /\ ((undef34 - 2) <= undef27) /\ ((undef34 - 2) <= undef28) /\ ((undef34 - 3) <= undef29) /\ (undef35 <= undef26) /\ ((undef35 + 1) <= undef27) /\ ((undef35 + 1) <= undef28) /\ (undef35 <= undef29) /\ (undef26 > ~(1)) /\ (undef27 > 0) /\ (undef28 > 0) /\ (undef29 > ~(1)) /\ (undef34 > 2) /\ (undef35 > ~(1)), par{arg1 -> undef34, arg2 -> undef35, arg3 -> undef36, arg4 -> undef37}> 0) /\ (arg4 > 0) /\ (undef41 < arg4) /\ ((undef38 - 2) <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef38 > 2) /\ (undef39 > 0), par{arg1 -> undef38, arg2 -> undef39, arg4 -> undef41}> 0) /\ (undef47 > ~(1)) /\ (undef46 < undef47) /\ ((undef44 - 2) <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef42 > ~(1)) /\ (undef43 > 0) /\ (undef44 > 2) /\ (undef45 > ~(1)) /\ (undef31 <= undef42) /\ ((undef31 + 1) <= undef43) /\ (undef31 <= undef45) /\ (undef42 > ~(1)) /\ (undef43 > 0) /\ (undef44 > 0) /\ (undef45 > ~(1)) /\ (undef30 > 2) /\ (undef31 > ~(1)), par{arg1 -> undef30, arg2 -> undef31, arg3 -> undef32, arg4 -> undef33}> 0) /\ (undef47 > ~(1)) /\ (undef46 < undef47) /\ ((undef44 - 2) <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef42 > ~(1)) /\ (undef43 > 0) /\ (undef44 > 2) /\ (undef45 > ~(1)) /\ ((undef34 - 3) <= undef42) /\ ((undef34 - 2) <= undef43) /\ ((undef34 - 2) <= undef44) /\ ((undef34 - 3) <= undef45) /\ (undef35 <= undef42) /\ ((undef35 + 1) <= undef43) /\ ((undef35 + 1) <= undef44) /\ (undef35 <= undef45) /\ (undef42 > ~(1)) /\ (undef43 > 0) /\ (undef44 > 0) /\ (undef45 > ~(1)) /\ (undef34 > 2) /\ (undef35 > ~(1)), par{arg1 -> undef34, arg2 -> undef35, arg3 -> undef36, arg4 -> undef37}> ~(1)) /\ (undef53 < undef52) /\ ((undef48 - 2) <= arg1) /\ (undef48 <= arg2) /\ (undef49 <= arg1) /\ (arg1 > 0) /\ (arg2 > 2) /\ (undef48 > 2) /\ (undef49 > 0), par{arg1 -> undef48, arg2 -> undef49, arg3 -> undef50, arg4 -> undef51}> Fresh variables: undef1, undef2, undef4, undef5, undef6, undef7, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, Undef variables: undef1, undef2, undef4, undef5, undef6, undef7, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef25, undef26, undef27, undef28, undef29, undef30, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef6, arg2 -> undef7, arg3 -> -1 + arg3, arg4 -> undef9, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 2: Transitions: undef38, arg2 -> undef39, arg4 -> undef41, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 3: Transitions: undef30, arg2 -> undef31, arg3 -> undef32, arg4 -> undef33, rest remain the same}> undef34, arg2 -> undef35, arg3 -> undef36, arg4 -> undef37, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Precedence: Graph 0 Graph 1 Graph 2 undef22, arg2 -> undef23, arg3 -> undef24, arg4 -> undef25, rest remain the same}> Graph 3 undef10, arg2 -> undef11, arg3 -> undef12, arg4 -> undef13, rest remain the same}> undef14, arg2 -> undef15, arg3 -> undef16, arg4 -> undef17, rest remain the same}> undef18, arg2 -> undef19, arg3 -> undef20, arg4 -> undef21, rest remain the same}> undef30, arg2 -> undef31, arg3 -> undef32, arg4 -> undef33, rest remain the same}> undef34, arg2 -> undef35, arg3 -> undef36, arg4 -> undef37, rest remain the same}> undef48, arg2 -> undef49, arg3 -> undef50, arg4 -> undef51, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ( 3 , 3 ) ( 4 , 2 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.002273 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000739s Ranking function: -1 + arg3 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.001844 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000794s Ranking function: -1 + arg4 New Graphs: Proving termination of subgraph 3 Checking unfeasibility... Time used: 0.006522 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002509s Ranking function: -1 + arg2 New Graphs: Program Terminates