YES Solver Timeout: 4 Global Timeout: 300 No parsing errors! Init Location: 0 Transitions: 0) /\ (undef1 > 2) /\ (0 = arg2), par{arg1 -> undef1, arg2 -> undef2, arg3 -> undef3}> 0) /\ (undef4 > 1) /\ (0 = arg2), par{arg1 -> undef4, arg2 -> undef5, arg3 -> undef6}> 0) /\ (undef10 > ~(1)) /\ (undef7 > 2) /\ (1 = arg2), par{arg1 -> undef7, arg2 -> undef8, arg3 -> undef9}> ~(1)) /\ (arg1 > 0) /\ (undef11 > 1) /\ (1 = arg2), par{arg1 -> undef11, arg2 -> undef12, arg3 -> undef13}> = 0) /\ (arg2 > 1) /\ (undef19 > ~(1)) /\ (undef18 > ~(1)) /\ (undef15 <= arg1) /\ (arg1 > 0) /\ (undef15 > 0) /\ (undef16 > 2), par{arg1 -> undef15, arg2 -> undef16, arg3 -> undef17}> = 0) /\ (arg2 > 1) /\ (undef24 > ~(1)) /\ (undef23 > ~(1)) /\ (undef20 <= arg1) /\ ((undef21 - 1) <= arg1) /\ (arg1 > 0) /\ (undef20 > 0) /\ (undef21 > 1), par{arg1 -> undef20, arg2 -> undef21, arg3 -> undef22}> 0) /\ (0 = arg2), par{arg1 -> 10, arg2 -> undef26, arg3 -> undef27}> 0) /\ (undef31 > ~(1)) /\ (1 = arg2), par{arg1 -> 10, arg2 -> undef29, arg3 -> undef30}> = 0) /\ (arg2 > 1) /\ (undef36 > ~(1)) /\ (undef35 > ~(1)) /\ (arg1 > 0), par{arg1 -> ((undef35 * undef36) + 10), arg2 -> undef33, arg3 -> undef34}> 1) /\ ((arg1 - 1) < arg1), par{arg1 -> (arg1 - 1), arg2 -> undef38, arg3 -> undef39}> 4) /\ (arg1 > 1), par{arg1 -> undef40, arg2 -> (arg1 - 1), arg3 -> undef42}> 3) /\ (arg1 > 1), par{arg1 -> undef43, arg2 -> (arg1 - 1), arg3 -> undef45}> 2) /\ (arg2 > 0), par{arg1 -> arg2, arg2 -> undef47, arg3 -> undef48}> 0) /\ (undef49 > 0) /\ (undef50 > ~(1)), par{arg1 -> undef49, arg2 -> undef50, arg3 -> undef51}> 0) /\ (undef52 > 0) /\ (undef53 > ~(1)), par{arg1 -> undef52, arg2 -> undef53, arg3 -> undef54}> 1) /\ ((undef56 + 1) <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef55 > 0) /\ (undef56 > ~(1)), par{arg1 -> undef55, arg2 -> undef56, arg3 -> undef57}> 2) /\ (arg2 > 0) /\ (undef59 > 0) /\ (undef60 > ~(1)), par{arg1 -> undef59, arg2 -> undef60, arg3 -> undef61}> 2) /\ (arg2 > ~(1)) /\ (undef62 > 0) /\ (undef63 > ~(1)), par{arg1 -> undef62, arg2 -> undef63, arg3 -> undef64}> undef65, arg2 -> undef66, arg3 -> undef67}> Fresh variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef26, undef27, undef29, undef30, undef31, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef42, undef43, undef45, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, Undef variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef26, undef27, undef29, undef30, undef31, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef42, undef43, undef45, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: 0) /\ (undef1 > 2) /\ (0 = undef66) /\ (undef49 <= undef1) /\ ((undef50 + 1) <= undef1) /\ (undef1 > 0) /\ (undef49 > 0) /\ (undef50 > ~(1)), par{arg1 -> undef49, arg2 -> undef50}> 0) /\ (undef4 > 1) /\ (0 = undef66) /\ (undef49 <= undef4) /\ ((undef50 + 1) <= undef4) /\ (undef4 > 0) /\ (undef49 > 0) /\ (undef50 > ~(1)), par{arg1 -> undef49, arg2 -> undef50}> 0) /\ (undef10 > ~(1)) /\ (undef7 > 2) /\ (1 = undef66) /\ (undef52 <= undef7) /\ ((undef53 + 1) <= undef7) /\ (undef7 > 0) /\ (undef52 > 0) /\ (undef53 > ~(1)), par{arg1 -> undef52, arg2 -> undef53}> ~(1)) /\ (undef65 > 0) /\ (undef11 > 1) /\ (1 = undef66) /\ (undef52 <= undef11) /\ ((undef53 + 1) <= undef11) /\ (undef11 > 0) /\ (undef52 > 0) /\ (undef53 > ~(1)), par{arg1 -> undef52, arg2 -> undef53}> 1) /\ (undef19 > ~(1)) /\ (undef18 > ~(1)) /\ (undef15 <= undef65) /\ (undef65 > 0) /\ (undef15 > 0) /\ (undef16 > 2) /\ (undef55 <= undef16) /\ (undef58 > 1) /\ ((undef56 + 1) <= undef16) /\ (undef15 > 0) /\ (undef16 > 0) /\ (undef55 > 0) /\ (undef56 > ~(1)), par{arg1 -> undef55, arg2 -> undef56}> 1) /\ (undef24 > ~(1)) /\ (undef23 > ~(1)) /\ (undef20 <= undef65) /\ ((undef21 - 1) <= undef65) /\ (undef65 > 0) /\ (undef20 > 0) /\ (undef21 > 1) /\ (undef55 <= undef21) /\ (undef58 > 1) /\ ((undef56 + 1) <= undef21) /\ (undef20 > 0) /\ (undef21 > 0) /\ (undef55 > 0) /\ (undef56 > ~(1)), par{arg1 -> undef55, arg2 -> undef56}> 0) /\ (0 = undef66), par{arg1 -> 10, arg2 -> undef26}> 0) /\ (undef31 > ~(1)) /\ (1 = undef66), par{arg1 -> 10, arg2 -> undef29}> 1) /\ (undef36 > ~(1)) /\ (undef35 > ~(1)) /\ (undef65 > 0), par{arg1 -> abstract_68, arg2 -> undef33}> 1) /\ ((arg1 - 1) < arg1), par{arg1 -> (arg1 - 1), arg2 -> undef38}> 4) /\ (arg1 > 1) /\ (undef40 > 2) /\ ((arg1 - 1) > 0), par{arg1 -> (arg1 - 1), arg2 -> undef47}> 3) /\ (arg1 > 1) /\ (undef43 > 2) /\ ((arg1 - 1) > 0), par{arg1 -> (arg1 - 1), arg2 -> undef47}> 2) /\ (arg2 > 0) /\ (undef59 > 0) /\ (undef60 > ~(1)), par{arg1 -> undef59, arg2 -> undef60}> 2) /\ (arg2 > ~(1)) /\ (undef62 > 0) /\ (undef63 > ~(1)), par{arg1 -> undef62, arg2 -> undef63}> Fresh variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef26, undef27, undef29, undef30, undef31, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef42, undef43, undef45, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, abstract_68, Undef variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef23, undef24, undef26, undef27, undef29, undef30, undef31, undef33, undef34, undef35, undef36, undef38, undef39, undef40, undef42, undef43, undef45, undef47, undef48, undef49, undef50, undef51, undef52, undef53, undef54, undef55, undef56, undef57, undef58, undef59, undef60, undef61, undef62, undef63, undef64, undef65, undef66, undef67, Abstraction variables: abstract_68 --> ( + ( * undef35 undef36 ) 10 ) Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: -1 + arg1, arg2 -> undef38, rest remain the same}> -1 + arg1, arg2 -> undef47, rest remain the same}> -1 + arg1, arg2 -> undef47, rest remain the same}> Variables: arg1, arg2 Graph 2: Transitions: undef59, arg2 -> undef60, rest remain the same}> undef62, arg2 -> undef63, rest remain the same}> Variables: arg1, arg2 Precedence: Graph 0 Graph 1 10, arg2 -> undef26, rest remain the same}> 10, arg2 -> undef29, rest remain the same}> abstract_68, arg2 -> undef33, rest remain the same}> Graph 2 undef49, arg2 -> undef50, rest remain the same}> undef49, arg2 -> undef50, rest remain the same}> undef52, arg2 -> undef53, rest remain the same}> undef52, arg2 -> undef53, rest remain the same}> undef55, arg2 -> undef56, rest remain the same}> undef55, arg2 -> undef56, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 5 , 1 ) ( 7 , 2 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Detected abstraction incompatible with non-termination check. Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.002989 Checking conditional termination of SCC {l5}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000753s Ranking function: -2 + arg1 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.003924 Checking conditional termination of SCC {l7}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001340s Ranking function: (~(3) / 2) + (1 / 2)*arg1 New Graphs: Program Terminates