/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 178 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 9818 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 326 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 5 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 713 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 172 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 512 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 207 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 692 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 151 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 2 ms] (34) YES (35) LLVM Symbolic Execution SCC (36) SCC2IRS [SOUND, 70 ms] (37) IntTRS (38) IRS2T2 [EQUIVALENT, 0 ms] (39) T2IntSys (40) T2 [EQUIVALENT, 642 ms] (41) YES (42) LLVM Symbolic Execution SCC (43) SCC2IRS [SOUND, 120 ms] (44) IntTRS (45) IRS2T2 [EQUIVALENT, 0 ms] (46) T2IntSys (47) T2 [EQUIVALENT, 4 ms] (48) YES (49) LLVM Symbolic Execution SCC (50) SCC2IRS [SOUND, 47 ms] (51) IntTRS (52) IRS2T2 [EQUIVALENT, 0 ms] (53) T2IntSys (54) T2 [EQUIVALENT, 682 ms] (55) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %x = alloca i32, align 4 %y = alloca i32, align 4 %z = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %x %3 = call i32 @__VERIFIER_nondet_int() store %3, %y %4 = call i32 @__VERIFIER_nondet_int() store %4, %z br %5 5: %6 = load %x %7 = icmp sgt %6 0 br %7, %8, %14 8: %9 = load %y %10 = icmp sgt %9 0 br %10, %11, %14 11: %12 = load %z %13 = icmp sgt %12 0 br %14 14: %15 = phi [0, %8], [0, %5], [%13, %11] br %15, %16, %35 16: %17 = call i32 @__VERIFIER_nondet_int() %18 = icmp ne %17 0 br %18, %19, %22 19: %20 = load %x %21 = sub %20 1 store %21, %x br %34 22: %23 = call i32 @__VERIFIER_nondet_int() %24 = icmp ne %23 0 br %24, %25, %29 25: %26 = load %y %27 = sub %26 1 store %27, %y %28 = call i32 @__VERIFIER_nondet_int() store %28, %z br %33 29: %30 = load %z %31 = sub %30 1 store %31, %z %32 = call i32 @__VERIFIER_nondet_int() store %32, %x br %33 33: br %34 34: br %5 35: %36 = load %1 ret %36 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 7 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 138 rulesP rules: f_1411(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24550, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24560, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1424(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1424(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1436(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 < v24560 && 2 <= v24550 f_1436(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1449(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1449(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1460(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1460(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1472(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1472(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1484(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1484(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1494(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1494(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1503(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1503(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1514(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1514(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1521(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1521(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1528(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1528(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1536(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1536(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1546(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: v29768 != 0 f_1536(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1547(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: v29768 = 0 f_1546(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1557(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1557(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1567(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1567(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1824(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, v29768, 0, v24556, v24557, v24558, v24559, v24550, v24560, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1824(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v44303, v44304, v44305, v44306, v44307, v44308, 3, 2, 4) -> f_1831(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v44304, v44305, v44306, v44307, v44308, 3, 2, 4) :|: 0 = 0 f_1831(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v44304, v44305, v44306, v44307, v44308, 3, 2, 4) -> f_1838(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) :|: 1 + v45094 = v44293 && 0 <= v45094 f_1838(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) -> f_1846(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) :|: TRUE f_1846(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) -> f_1854(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) :|: TRUE f_1854(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) -> f_1399(v44286, v44287, v44288, v44289, v44290, v44291, v44292, v44293, 1, v44295, v44296, v44297, 0, v44299, v44300, v44301, v44302, v45094, v44305, v44306, v44307, v44308, 3, 2, 4) :|: TRUE f_1399(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24550, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24560, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1411(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24550, 1, v24552, v24553, v24554, 0, v24556, v24557, v24558, v24559, v24560, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1547(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1558(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: 0 = 0 f_1558(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1568(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1568(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24561, v24562, v24563, v24564, 3, 2, 4) -> f_1826(v24543, v24544, v24545, v24546, v24547, v24548, v24549, v24560, 1, v24552, v24553, 0, v24556, v24557, v24558, v24559, v24550, v24560, v24561, v24562, v24563, v24564, 3, 2, 4) :|: TRUE f_1826(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1832(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1832(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1839(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: v44899 != 0 f_1832(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1840(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: v44899 = 0 f_1839(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1847(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: 0 = 0 f_1847(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1855(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1855(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1966(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44899, v44450, v44451, v44452, v44448, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1966(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51070, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1968(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) :|: 0 = 0 f_1968(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1970(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) :|: 1 + v51142 = v51066 && 0 <= v51142 f_1970(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1972(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) :|: TRUE f_1972(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51071, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1974(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51146, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) :|: TRUE f_1974(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51146, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1976(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51146, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) :|: TRUE f_1976(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51146, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1978(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51146, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) :|: TRUE f_1978(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51069, v51142, v51146, v51072, v51073, v51074, v51075, v51076, v51077, v51078, v51079, v51080, 3, 2, 4) -> f_1888(v51057, v51058, v51059, v51060, v51061, v51062, v51063, v51064, 1, v51066, v51067, 0, v51075, v51076, v51069, v51072, v51073, v51074, v51142, v51146, v51077, v51078, v51079, v51080, 3, 2, 4) :|: TRUE f_1888(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1893(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1893(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1895(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1895(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1897(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1897(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1899(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1899(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1901(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1901(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46876, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46885, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1903(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1903(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1905(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 < v46885 && 2 <= v46876 && 2 <= v46872 f_1905(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1909(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1909(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1913(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1913(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46877, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46886, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1917(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1917(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1921(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 < v46886 f_1921(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1927(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1927(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1932(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1932(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1937(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1937(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1941(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1941(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1945(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: v50524 != 0 f_1941(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1946(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: v50524 = 0 f_1945(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1949(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: 0 = 0 f_1949(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) -> f_1953(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: TRUE f_1953(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) -> f_1956(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: 0 = 0 f_1956(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) -> f_1958(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v50780, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: 1 + v50780 = v46874 && 0 <= v50780 f_1958(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v50780, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) -> f_1961(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v50780, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: TRUE f_1961(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v50780, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) -> f_1964(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v50780, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: TRUE f_1964(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v50780, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 0, 3, 2, 4) -> f_1851(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, v50524, v46881, v46882, v46883, v46884, v46876, v50780, v46887, v46888, v46889, v46890, 0, 3, 2, 4) :|: TRUE f_1851(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45379, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45389, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1857(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45379, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45389, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1857(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45379, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45389, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1862(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1862(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1867(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 < v45389 && 2 <= v45379 f_1867(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1873(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1873(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1879(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1879(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1885(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1885(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1891(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1891(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1894(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1894(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1896(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1896(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1898(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1898(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1900(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1900(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1902(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1902(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v45383, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1904(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1904(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1907(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: v48177 != 0 f_1904(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1908(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 3, 2, 4) :|: v48177 = 0 f_1907(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1911(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1911(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1915(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1915(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1919(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 0 = 0 f_1919(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1924(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: 1 + v49023 = v45389 && 0 <= v49023 f_1924(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1929(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1929(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1934(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1934(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) -> f_1851(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, v48177, v45384, v45385, v45386, v45387, v45388, v49023, v45390, v45391, v45392, v45393, 0, 3, 2, 4) :|: TRUE f_1908(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 3, 2, 4) -> f_1912(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 3, 2, 4) :|: 0 = 0 f_1912(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 3, 2, 4) -> f_1916(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 3, 2, 4) :|: TRUE f_1916(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45390, v45391, v45392, v45393, 3, 2, 4) -> f_1955(v45372, v45373, v45374, v45375, v45376, v45377, v45378, v45389, 1, v45381, v45382, 0, v45384, v45385, v45386, v45387, v45388, v45379, v45389, v45390, v45391, v45392, v45393, 3, 2, 4) :|: TRUE f_1955(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50768, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1957(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1957(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1959(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: v50779 != 0 f_1957(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1960(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: v50779 = 0 f_1959(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1962(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: 0 = 0 f_1962(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1965(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1965(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1966(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50779, v50772, v50766, v50769, v50770, v50771, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1960(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1963(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: 0 = 0 f_1963(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1967(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1967(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50769, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1969(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: 0 = 0 f_1969(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50770, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1971(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: 1 + v51143 = v50766 && 0 <= v51143 f_1971(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1973(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1973(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v50771, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1975(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v51147, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1975(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v51147, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1977(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v51147, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1977(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v51147, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1979(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v51147, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1979(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v51143, v51147, v50772, v50773, v50774, v50775, v50776, v50777, v50778, 3, 2, 4) -> f_1694(v50756, v50757, v50758, v50759, v50760, v50761, v50762, v50763, 1, v50765, v50766, 0, v50772, v50766, v50773, v50774, v51143, v51147, v50775, v50776, v50777, v50778, 3, 2, 4) :|: TRUE f_1694(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37347, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37357, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1703(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37347, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37357, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1703(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37347, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37357, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1713(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37347, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37357, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1713(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37347, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37357, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1721(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1721(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1727(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 < v37357 f_1727(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1734(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1734(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1741(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1741(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1748(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1748(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1756(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1756(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1764(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1764(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37350, 0, v37352, v37353, v37354, v37355, v37356, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1771(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1771(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1779(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 < v37356 && 2 <= v37350 f_1779(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1788(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1788(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1795(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1795(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1801(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1801(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1806(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1806(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1811(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: v43950 != 0 f_1806(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1812(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: v43950 = 0 f_1811(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1817(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1817(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1823(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1823(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1824(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, v43950, 0, v37352, v37353, v37350, v37357, v37354, v37355, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1812(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1818(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: 0 = 0 f_1818(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1825(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1825(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37354, v37355, v37350, v37358, v37359, v37360, v37361, 3, 2, 4) -> f_1826(v37340, v37341, v37342, v37343, v37344, v37345, v37346, v37357, 1, v37349, v37356, 0, v37352, v37353, v37350, v37357, v37354, v37355, v37358, v37359, v37360, v37361, 3, 2, 4) :|: TRUE f_1946(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1950(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: 0 = 0 f_1950(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1954(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1954(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46879, v46880, v46881, v46882, v46883, v46884, v46876, v46887, v46888, v46889, v46890, 3, 2, 4) -> f_1955(v46867, v46868, v46869, v46870, v46871, v46872, v46873, v46874, 1, v46885, v46886, 0, v46881, v46882, v46883, v46884, v46876, v46879, v46880, v46887, v46888, v46889, v46890, 3, 2, 4) :|: TRUE f_1840(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1848(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: 0 = 0 f_1848(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1856(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1856(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44452, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1861(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: 0 = 0 f_1861(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1866(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: 1 + v46046 = v44448 && 0 <= v46046 f_1866(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1872(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1872(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v44453, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1878(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v46054, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1878(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v46054, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1884(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v46054, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1884(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v46054, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1890(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v46054, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE f_1890(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v46046, v46054, v44454, v44455, v44456, v44457, v44458, v44459, 3, 2, 4) -> f_1694(v44438, v44439, v44440, v44441, v44442, v44443, v44444, v44445, 1, v44447, v44448, 0, v44450, v44451, v44454, v44455, v46046, v46054, v44456, v44457, v44458, v44459, 3, 2, 4) :|: TRUE Combined rules. Obtained 18 rulesP rules: f_1957(v50756:0, v50757:0, v50758:0, v50759:0, v50760:0, v50761:0, v50762:0, v50763:0, 1, 1 + v51142:0, v50766:0, 0, v50779:0, v50769:0, v50770:0, v50771:0, v50772:0, v50773:0, v50774:0, v50775:0, v50776:0, v50777:0, v50778:0, 3, 2, 4) -> f_1941(v50756:0, v50757:0, v50758:0, v50759:0, v50760:0, v50761:0, v50762:0, v50763:0, 1, v51142:0, v51146:0, v50524:0, 0, v50773:0, v50774:0, v50779:0, v50769:0, v50770:0, v50771:0, 1 + v51142:0, v50775:0, v50776:0, v50777:0, v50778:0, 3, 2, 4) :|: v51142:0 > 0 && v50761:0 > 1 && v50779:0 < 0 && v51146:0 > 0 f_1957(v50756:0, v50757:0, v50758:0, v50759:0, v50760:0, v50761:0, v50762:0, v50763:0, 1, 1 + v51142:0, v50766:0, 0, v50779:0, v50769:0, v50770:0, v50771:0, v50772:0, v50773:0, v50774:0, v50775:0, v50776:0, v50777:0, v50778:0, 3, 2, 4) -> f_1941(v50756:0, v50757:0, v50758:0, v50759:0, v50760:0, v50761:0, v50762:0, v50763:0, 1, v51142:0, v51146:0, v50524:0, 0, v50773:0, v50774:0, v50779:0, v50769:0, v50770:0, v50771:0, 1 + v51142:0, v50775:0, v50776:0, v50777:0, v50778:0, 3, 2, 4) :|: v51142:0 > 0 && v50761:0 > 1 && v50779:0 > 0 && v51146:0 > 0 f_1806(v37340:0, v37341:0, v37342:0, v37343:0, v37344:0, v37345:0, v37346:0, 1 + v45094:0, 1, v37349:0, v37356:0, v43950:0, 0, v37352:0, v37353:0, v37354:0, v37355:0, v37350:0, v37358:0, v37359:0, v37360:0, v37361:0, 3, 2, 4) -> f_1411(v37340:0, v37341:0, v37342:0, v37343:0, v37344:0, v37345:0, v37346:0, 1 + v45094:0, 1, v37349:0, v37356:0, v43950:0, 0, v37352:0, v37353:0, v37350:0, 1 + v45094:0, v45094:0, v37358:0, v37359:0, v37360:0, v37361:0, 3, 2, 4) :|: v43950:0 < 0 && v45094:0 > -1 f_1806(v37340:0, v37341:0, v37342:0, v37343:0, v37344:0, v37345:0, v37346:0, 1 + v45094:0, 1, v37349:0, v37356:0, v43950:0, 0, v37352:0, v37353:0, v37354:0, v37355:0, v37350:0, v37358:0, v37359:0, v37360:0, v37361:0, 3, 2, 4) -> f_1411(v37340:0, v37341:0, v37342:0, v37343:0, v37344:0, v37345:0, v37346:0, 1 + v45094:0, 1, v37349:0, v37356:0, v43950:0, 0, v37352:0, v37353:0, v37350:0, 1 + v45094:0, v45094:0, v37358:0, v37359:0, v37360:0, v37361:0, 3, 2, 4) :|: v43950:0 > 0 && v45094:0 > -1 f_1904(v45372:0, v45373:0, v45374:0, v45375:0, v45376:0, v45377:0, v45378:0, 1 + v49023:0, 1, v45381:0, v45382:0, v48177:0, v45384:0, v45385:0, v45386:0, v45387:0, v45388:0, v45379:0, v45390:0, v45391:0, v45392:0, v45393:0, 0, 3, 2, 4) -> f_1904(v45372:0, v45373:0, v45374:0, v45375:0, v45376:0, v45377:0, v45378:0, v49023:0, 1, v45381:0, v45382:0, v48177:1, v45384:0, v45385:0, v45386:0, v45387:0, v45388:0, 1 + v49023:0, v45390:0, v45391:0, v45392:0, v45393:0, 0, 3, 2, 4) :|: v49023:0 > 0 && v48177:0 < 0 f_1904(v45372:0, v45373:0, v45374:0, v45375:0, v45376:0, v45377:0, v45378:0, 1 + v49023:0, 1, v45381:0, v45382:0, v48177:0, v45384:0, v45385:0, v45386:0, v45387:0, v45388:0, v45379:0, v45390:0, v45391:0, v45392:0, v45393:0, 0, 3, 2, 4) -> f_1904(v45372:0, v45373:0, v45374:0, v45375:0, v45376:0, v45377:0, v45378:0, v49023:0, 1, v45381:0, v45382:0, v48177:1, v45384:0, v45385:0, v45386:0, v45387:0, v45388:0, 1 + v49023:0, v45390:0, v45391:0, v45392:0, v45393:0, 0, 3, 2, 4) :|: v49023:0 > 0 && v48177:0 > 0 f_1411(v24543:0, v24544:0, v24545:0, v24546:0, v24547:0, v24548:0, v24549:0, v24550:0, 1, v24552:0, v24553:0, v24554:0, 0, v24556:0, v24557:0, v24558:0, v24559:0, v24560:0, v24561:0, v24562:0, v24563:0, v24564:0, 3, 2, 4) -> f_1832(v24543:0, v24544:0, v24545:0, v24546:0, v24547:0, v24548:0, v24549:0, v24560:0, 1, v24552:0, v24553:0, 0, v44899:0, v24556:0, v24557:0, v24558:0, v24559:0, v24550:0, v24560:0, v24561:0, v24562:0, v24563:0, v24564:0, 3, 2, 4) :|: v24560:0 > 0 && v24550:0 > 1 f_1941(v46867:0, v46868:0, v46869:0, v46870:0, v46871:0, v46872:0, v46873:0, 1 + v50780:0, 1, v46885:0, v46886:0, v50524:0, 0, v46879:0, v46880:0, v46881:0, v46882:0, v46883:0, v46884:0, v46876:0, v46887:0, v46888:0, v46889:0, v46890:0, 3, 2, 4) -> f_1904(v46867:0, v46868:0, v46869:0, v46870:0, v46871:0, v46872:0, v46873:0, v50780:0, 1, v46885:0, v46886:0, v48177:0, v46881:0, v46882:0, v46883:0, v46884:0, v46876:0, 1 + v50780:0, v46887:0, v46888:0, v46889:0, v46890:0, 0, 3, 2, 4) :|: v50780:0 > 0 && v50524:0 < 0 f_1941(v46867:0, v46868:0, v46869:0, v46870:0, v46871:0, v46872:0, v46873:0, 1 + v50780:0, 1, v46885:0, v46886:0, v50524:0, 0, v46879:0, v46880:0, v46881:0, v46882:0, v46883:0, v46884:0, v46876:0, v46887:0, v46888:0, v46889:0, v46890:0, 3, 2, 4) -> f_1904(v46867:0, v46868:0, v46869:0, v46870:0, v46871:0, v46872:0, v46873:0, v50780:0, 1, v46885:0, v46886:0, v48177:0, v46881:0, v46882:0, v46883:0, v46884:0, v46876:0, 1 + v50780:0, v46887:0, v46888:0, v46889:0, v46890:0, 0, 3, 2, 4) :|: v50780:0 > 0 && v50524:0 > 0 f_1832(v44438:0, v44439:0, v44440:0, v44441:0, v44442:0, v44443:0, v44444:0, v44445:0, 1, 1 + v51142:0, v44448:0, 0, v44899:0, v44450:0, v44451:0, v44452:0, v44453:0, v44454:0, v44455:0, v44456:0, v44457:0, v44458:0, v44459:0, 3, 2, 4) -> f_1941(v44438:0, v44439:0, v44440:0, v44441:0, v44442:0, v44443:0, v44444:0, v44445:0, 1, v51142:0, v51146:0, v50524:0, 0, v44454:0, v44455:0, v44899:0, v44452:0, v44448:0, v44453:0, 1 + v51142:0, v44456:0, v44457:0, v44458:0, v44459:0, 3, 2, 4) :|: v51142:0 > 0 && v44899:0 < 0 && v51146:0 > 0 && v44443:0 > 1 f_1832(v44438:0, v44439:0, v44440:0, v44441:0, v44442:0, v44443:0, v44444:0, v44445:0, 1, 1 + v51142:0, v44448:0, 0, v44899:0, v44450:0, v44451:0, v44452:0, v44453:0, v44454:0, v44455:0, v44456:0, v44457:0, v44458:0, v44459:0, 3, 2, 4) -> f_1941(v44438:0, v44439:0, v44440:0, v44441:0, v44442:0, v44443:0, v44444:0, v44445:0, 1, v51142:0, v51146:0, v50524:0, 0, v44454:0, v44455:0, v44899:0, v44452:0, v44448:0, v44453:0, 1 + v51142:0, v44456:0, v44457:0, v44458:0, v44459:0, 3, 2, 4) :|: v51142:0 > 0 && v44899:0 > 0 && v51146:0 > 0 && v44443:0 > 1 f_1806(v37340:0, v37341:0, v37342:0, v37343:0, v37344:0, v37345:0, v37346:0, v37357:0, 1, v37349:0, v37356:0, 0, 0, v37352:0, v37353:0, v37354:0, v37355:0, v37350:0, v37358:0, v37359:0, v37360:0, v37361:0, 3, 2, 4) -> f_1832(v37340:0, v37341:0, v37342:0, v37343:0, v37344:0, v37345:0, v37346:0, v37357:0, 1, v37349:0, v37356:0, 0, v44899:0, v37352:0, v37353:0, v37350:0, v37357:0, v37354:0, v37355:0, v37358:0, v37359:0, v37360:0, v37361:0, 3, 2, 4) :|: TRUE f_1941(v46867:0, v46868:0, v46869:0, v46870:0, v46871:0, v46872:0, v46873:0, v46874:0, 1, v46885:0, v46886:0, 0, 0, v46879:0, v46880:0, v46881:0, v46882:0, v46883:0, v46884:0, v46876:0, v46887:0, v46888:0, v46889:0, v46890:0, 3, 2, 4) -> f_1957(v46867:0, v46868:0, v46869:0, v46870:0, v46871:0, v46872:0, v46873:0, v46874:0, 1, v46885:0, v46886:0, 0, v50779:0, v46882:0, v46883:0, v46884:0, v46876:0, v46879:0, v46880:0, v46887:0, v46888:0, v46889:0, v46890:0, 3, 2, 4) :|: TRUE f_1832(v44438:0, v44439:0, v44440:0, v44441:0, v44442:0, v44443:0, v44444:0, v44445:0, 1, v44447:0, 1 + v46046:0, 0, 0, v44450:0, v44451:0, v44452:0, v44453:0, v44454:0, v44455:0, v44456:0, v44457:0, v44458:0, v44459:0, 3, 2, 4) -> f_1806(v44438:0, v44439:0, v44440:0, v44441:0, v44442:0, v44443:0, v44444:0, v46054:0, 1, v44447:0, v46046:0, v43950:0, 0, v44450:0, v44451:0, v44454:0, v44455:0, 1 + v46046:0, v44456:0, v44457:0, v44458:0, v44459:0, 3, 2, 4) :|: v46046:0 > 0 && v46054:0 > 0 f_1957(v50756:0, v50757:0, v50758:0, v50759:0, v50760:0, v50761:0, v50762:0, v50763:0, 1, v50765:0, 1 + v51143:0, 0, 0, v50769:0, v50770:0, v50771:0, v50772:0, v50773:0, v50774:0, v50775:0, v50776:0, v50777:0, v50778:0, 3, 2, 4) -> f_1806(v50756:0, v50757:0, v50758:0, v50759:0, v50760:0, v50761:0, v50762:0, v51147:0, 1, v50765:0, v51143:0, v43950:0, 0, v50772:0, 1 + v51143:0, v50773:0, v50774:0, 1 + v51143:0, v50775:0, v50776:0, v50777:0, v50778:0, 3, 2, 4) :|: v51143:0 > 0 && v51147:0 > 0 f_1411(v24543:0, v24544:0, v24545:0, v24546:0, v24547:0, v24548:0, v24549:0, v24550:0, 1, v24552:0, v24553:0, v24554:0, 0, v24556:0, v24557:0, v24558:0, v24559:0, 1 + v45094:0, v24561:0, v24562:0, v24563:0, v24564:0, 3, 2, 4) -> f_1411(v24543:0, v24544:0, v24545:0, v24546:0, v24547:0, v24548:0, v24549:0, 1 + v45094:0, 1, v24552:0, v24553:0, v29768:0, 0, v24556:0, v24557:0, v24558:0, v24559:0, v45094:0, v24561:0, v24562:0, v24563:0, v24564:0, 3, 2, 4) :|: v24550:0 > 1 && v45094:0 > -1 && v29768:0 < 0 f_1411(v24543:0, v24544:0, v24545:0, v24546:0, v24547:0, v24548:0, v24549:0, v24550:0, 1, v24552:0, v24553:0, v24554:0, 0, v24556:0, v24557:0, v24558:0, v24559:0, 1 + v45094:0, v24561:0, v24562:0, v24563:0, v24564:0, 3, 2, 4) -> f_1411(v24543:0, v24544:0, v24545:0, v24546:0, v24547:0, v24548:0, v24549:0, 1 + v45094:0, 1, v24552:0, v24553:0, v29768:0, 0, v24556:0, v24557:0, v24558:0, v24559:0, v45094:0, v24561:0, v24562:0, v24563:0, v24564:0, 3, 2, 4) :|: v24550:0 > 1 && v45094:0 > -1 && v29768:0 > 0 f_1904(v45372:0, v45373:0, v45374:0, v45375:0, v45376:0, v45377:0, v45378:0, v45389:0, 1, v45381:0, v45382:0, 0, v45384:0, v45385:0, v45386:0, v45387:0, v45388:0, v45379:0, v45390:0, v45391:0, v45392:0, v45393:0, 0, 3, 2, 4) -> f_1957(v45372:0, v45373:0, v45374:0, v45375:0, v45376:0, v45377:0, v45378:0, v45389:0, 1, v45381:0, v45382:0, 0, v50779:0, v45385:0, v45386:0, v45387:0, v45388:0, v45379:0, v45389:0, v45390:0, v45391:0, v45392:0, v45393:0, 3, 2, 4) :|: TRUE Filtered unneeded arguments: f_1957(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26) -> f_1957(x6, x8, x10, x11, x13) f_1806(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25) -> f_1806(x6, x8, x10, x11, x12) f_1904(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26) -> f_1904(x6, x8, x10, x11, x12) f_1411(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25) -> f_1411(x6, x8, x10, x11, x18) f_1941(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27) -> f_1941(x6, x8, x10, x11, x12) f_1832(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26) -> f_1832(x6, x8, x10, x11, x13) Removed division, modulo operations, cleaned up constraints. Obtained 17 rules.P rules: f_1957(v50761:0, v50763:0, sum~cons_1~v51142:0, v50766:0, v50779:0) -> f_1941(v50761:0, v50763:0, v51142:0, v51146:0, v50524:0) :|: v50761:0 > 1 && v51142:0 > 0 && v51146:0 > 0 && v50779:0 < 0 && sum~cons_1~v51142:0 = 1 + v51142:0 f_1957(v50761:0, v50763:0, sum~cons_1~v51142:0, v50766:0, v50779:0) -> f_1941(v50761:0, v50763:0, v51142:0, v51146:0, v50524:0) :|: v50761:0 > 1 && v51142:0 > 0 && v51146:0 > 0 && v50779:0 > 0 && sum~cons_1~v51142:0 = 1 + v51142:0 f_1806(v37345:0, sum~cons_1~v45094:0, v37349:0, v37356:0, v43950:0) -> f_1411(v37345:0, 1 + v45094:0, v37349:0, v37356:0, v45094:0) :|: v43950:0 < 0 && v45094:0 > -1 && sum~cons_1~v45094:0 = 1 + v45094:0 f_1806(v37345:0, sum~cons_1~v45094:0, v37349:0, v37356:0, v43950:0) -> f_1411(v37345:0, 1 + v45094:0, v37349:0, v37356:0, v45094:0) :|: v43950:0 > 0 && v45094:0 > -1 && sum~cons_1~v45094:0 = 1 + v45094:0 f_1904(v45377:0, sum~cons_1~v49023:0, v45381:0, v45382:0, v48177:0) -> f_1904(v45377:0, v49023:0, v45381:0, v45382:0, v48177:1) :|: v49023:0 > 0 && v48177:0 < 0 && sum~cons_1~v49023:0 = 1 + v49023:0 f_1904(v45377:0, sum~cons_1~v49023:0, v45381:0, v45382:0, v48177:0) -> f_1904(v45377:0, v49023:0, v45381:0, v45382:0, v48177:1) :|: v49023:0 > 0 && v48177:0 > 0 && sum~cons_1~v49023:0 = 1 + v49023:0 f_1411(v24548:0, v24550:0, v24552:0, v24553:0, v24560:0) -> f_1832(v24548:0, v24560:0, v24552:0, v24553:0, v44899:0) :|: v24560:0 > 0 && v24550:0 > 1 f_1941(v46872:0, sum~cons_1~v50780:0, v46885:0, v46886:0, v50524:0) -> f_1904(v46872:0, v50780:0, v46885:0, v46886:0, v48177:0) :|: v50780:0 > 0 && v50524:0 < 0 && sum~cons_1~v50780:0 = 1 + v50780:0 f_1941(v46872:0, sum~cons_1~v50780:0, v46885:0, v46886:0, v50524:0) -> f_1904(v46872:0, v50780:0, v46885:0, v46886:0, v48177:0) :|: v50780:0 > 0 && v50524:0 > 0 && sum~cons_1~v50780:0 = 1 + v50780:0 f_1832(v44443:0, v44445:0, sum~cons_1~v51142:0, v44448:0, v44899:0) -> f_1941(v44443:0, v44445:0, v51142:0, v51146:0, v50524:0) :|: v44899:0 < 0 && v51142:0 > 0 && v44443:0 > 1 && v51146:0 > 0 && sum~cons_1~v51142:0 = 1 + v51142:0 f_1832(v44443:0, v44445:0, sum~cons_1~v51142:0, v44448:0, v44899:0) -> f_1941(v44443:0, v44445:0, v51142:0, v51146:0, v50524:0) :|: v44899:0 > 0 && v51142:0 > 0 && v44443:0 > 1 && v51146:0 > 0 && sum~cons_1~v51142:0 = 1 + v51142:0 f_1806(v37345:0, v37357:0, v37349:0, v37356:0, cons_0) -> f_1832(v37345:0, v37357:0, v37349:0, v37356:0, v44899:0) :|: TRUE && cons_0 = 0 f_1941(v46872:0, v46874:0, v46885:0, v46886:0, cons_0) -> f_1957(v46872:0, v46874:0, v46885:0, v46886:0, v50779:0) :|: TRUE && cons_0 = 0 f_1832(v44443:0, v44445:0, v44447:0, sum~cons_1~v46046:0, cons_0) -> f_1806(v44443:0, v46054:0, v44447:0, v46046:0, v43950:0) :|: v46046:0 > 0 && v46054:0 > 0 && sum~cons_1~v46046:0 = 1 + v46046:0 && cons_0 = 0 f_1957(v50761:0, v50763:0, v50765:0, sum~cons_1~v51143:0, cons_0) -> f_1806(v50761:0, v51147:0, v50765:0, v51143:0, v43950:0) :|: v51143:0 > 0 && v51147:0 > 0 && sum~cons_1~v51143:0 = 1 + v51143:0 && cons_0 = 0 f_1411(v24548:0, v24550:0, v24552:0, v24553:0, sum~cons_1~v45094:0) -> f_1411(v24548:0, 1 + v45094:0, v24552:0, v24553:0, v45094:0) :|: v24550:0 > 1 && v45094:0 > -1 && sum~cons_1~v45094:0 = 1 + v45094:0 f_1904(v45377:0, v45389:0, v45381:0, v45382:0, cons_0) -> f_1957(v45377:0, v45389:0, v45381:0, v45382:0, v50779:0) :|: TRUE && cons_0 = 0 ---------------------------------------- (9) Obligation: Rules: f_1957(v50761:0, v50763:0, sum~cons_1~v51142:0, v50766:0, v50779:0) -> f_1941(v50761:0, v50763:0, v51142:0, v51146:0, v50524:0) :|: v50761:0 > 1 && v51142:0 > 0 && v51146:0 > 0 && v50779:0 < 0 && sum~cons_1~v51142:0 = 1 + v51142:0 f_1957(x, x1, x2, x3, x4) -> f_1941(x, x1, x5, x6, x7) :|: x > 1 && x5 > 0 && x6 > 0 && x4 > 0 && x2 = 1 + x5 f_1806(v37345:0, sum~cons_1~v45094:0, v37349:0, v37356:0, v43950:0) -> f_1411(v37345:0, 1 + v45094:0, v37349:0, v37356:0, v45094:0) :|: v43950:0 < 0 && v45094:0 > -1 && sum~cons_1~v45094:0 = 1 + v45094:0 f_1806(x8, x9, x10, x11, x12) -> f_1411(x8, 1 + x13, x10, x11, x13) :|: x12 > 0 && x13 > -1 && x9 = 1 + x13 f_1904(v45377:0, sum~cons_1~v49023:0, v45381:0, v45382:0, v48177:0) -> f_1904(v45377:0, v49023:0, v45381:0, v45382:0, v48177:1) :|: v49023:0 > 0 && v48177:0 < 0 && sum~cons_1~v49023:0 = 1 + v49023:0 f_1904(x14, x15, x16, x17, x18) -> f_1904(x14, x19, x16, x17, x20) :|: x19 > 0 && x18 > 0 && x15 = 1 + x19 f_1411(v24548:0, v24550:0, v24552:0, v24553:0, v24560:0) -> f_1832(v24548:0, v24560:0, v24552:0, v24553:0, v44899:0) :|: v24560:0 > 0 && v24550:0 > 1 f_1941(x21, x22, x23, x24, x25) -> f_1904(x21, x26, x23, x24, x27) :|: x26 > 0 && x25 < 0 && x22 = 1 + x26 f_1941(x28, x29, x30, x31, x32) -> f_1904(x28, x33, x30, x31, x34) :|: x33 > 0 && x32 > 0 && x29 = 1 + x33 f_1832(x35, x36, x37, x38, x39) -> f_1941(x35, x36, x40, x41, x42) :|: x39 < 0 && x40 > 0 && x35 > 1 && x41 > 0 && x37 = 1 + x40 f_1832(x43, x44, x45, x46, x47) -> f_1941(x43, x44, x48, x49, x50) :|: x47 > 0 && x48 > 0 && x43 > 1 && x49 > 0 && x45 = 1 + x48 f_1806(x51, x52, x53, x54, x55) -> f_1832(x51, x52, x53, x54, x56) :|: TRUE && x55 = 0 f_1941(x57, x58, x59, x60, x61) -> f_1957(x57, x58, x59, x60, x62) :|: TRUE && x61 = 0 f_1832(x63, x64, x65, x66, x67) -> f_1806(x63, x68, x65, x69, x70) :|: x69 > 0 && x68 > 0 && x66 = 1 + x69 && x67 = 0 f_1957(x71, x72, x73, x74, x75) -> f_1806(x71, x76, x73, x77, x78) :|: x77 > 0 && x76 > 0 && x74 = 1 + x77 && x75 = 0 f_1411(x79, x80, x81, x82, x83) -> f_1411(x79, 1 + x84, x81, x82, x84) :|: x80 > 1 && x84 > -1 && x83 = 1 + x84 f_1904(x85, x86, x87, x88, x89) -> f_1957(x85, x86, x87, x88, x90) :|: TRUE && x89 = 0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1957_5,1) (f_1941_5,2) (f_1806_5,3) (f_1411_5,4) (f_1904_5,5) (f_1832_5,6) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 0; TO: 3; FROM: 0; TO: 4; FROM: 0; TO: 5; FROM: 0; TO: 6; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX0 > 1 && oldX5 > 0 && oldX6 > 0 && oldX4 < 0 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX6; x4 := oldX7; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX0 > 1 && oldX5 > 0 && oldX6 > 0 && oldX4 > 0 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX6; x4 := oldX7; TO: 2; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; assume(oldX4 < 0 && oldX5 > -1 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := 1 + oldX5; x2 := oldX2; x3 := oldX3; x4 := oldX1 - 1; TO: 4; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; assume(oldX4 > 0 && oldX5 > -1 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := 1 + oldX5; x2 := oldX2; x3 := oldX3; x4 := oldX1 - 1; TO: 4; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX6 := nondet(); assume(oldX5 > 0 && oldX4 < 0 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX2; x3 := oldX3; x4 := oldX6; TO: 5; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX6 := nondet(); assume(oldX5 > 0 && oldX4 > 0 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX2; x3 := oldX3; x4 := oldX6; TO: 5; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 > 0 && oldX1 > 1); x0 := oldX0; x1 := oldX4; x2 := oldX2; x3 := oldX3; x4 := oldX5; TO: 6; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX6 := nondet(); assume(oldX5 > 0 && oldX4 < 0 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX2; x3 := oldX3; x4 := oldX6; TO: 5; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX6 := nondet(); assume(oldX5 > 0 && oldX4 > 0 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX2; x3 := oldX3; x4 := oldX6; TO: 5; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX4 < 0 && oldX5 > 0 && oldX0 > 1 && oldX6 > 0 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX6; x4 := oldX7; TO: 2; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX4 > 0 && oldX5 > 0 && oldX0 > 1 && oldX6 > 0 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX6; x4 := oldX7; TO: 2; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(0 = 0 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX5; TO: 6; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(0 = 0 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX5; TO: 1; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX6 := oldX3 - 1; oldX5 := nondet(); oldX7 := nondet(); assume(oldX6 > 0 && oldX5 > 0 && oldX3 = 1 + oldX6 && oldX4 = 0); x0 := oldX0; x1 := oldX5; x2 := oldX2; x3 := oldX3 - 1; x4 := oldX7; TO: 3; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX6 := oldX3 - 1; oldX5 := nondet(); oldX7 := nondet(); assume(oldX6 > 0 && oldX5 > 0 && oldX3 = 1 + oldX6 && oldX4 = 0); x0 := oldX0; x1 := oldX5; x2 := oldX2; x3 := oldX3 - 1; x4 := oldX7; TO: 3; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX4 - 1; assume(oldX1 > 1 && oldX5 > -1 && oldX4 = 1 + oldX5); x0 := oldX0; x1 := 1 + oldX5; x2 := oldX2; x3 := oldX3; x4 := oldX4 - 1; TO: 4; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(0 = 0 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX5; TO: 1; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 33, 36, 37, 45, 48, 49, 50, 60, 63, 64, 65 using the following rank functions: - Rank function 1: RF for loc. 10: -2+18*x2 RF for loc. 11: 18*x2 RF for loc. 12: -2+18*x2 RF for loc. 13: -2+18*x2 RF for loc. 14: -1+18*x2 RF for loc. 15: -2+18*x2 RF for loc. 16: -1+18*x2 RF for loc. 20: -2+18*x2 RF for loc. 24: -1+18*x2 RF for loc. 28: -2+18*x2 Bound for (chained) transitions 63: 34 Bound for (chained) transitions 64: 34 - Rank function 2: RF for loc. 10: 6*x2 RF for loc. 11: 1+6*x2 RF for loc. 12: -1+6*x2 RF for loc. 13: -1+6*x2 RF for loc. 14: 6*x2 RF for loc. 15: -1+6*x2 RF for loc. 16: 6*x2 RF for loc. 20: -1+6*x2 RF for loc. 24: 1+6*x2 RF for loc. 28: -1+6*x2 Bound for (chained) transitions 12: 12 - Rank function 3: RF for loc. 10: 1+4*x2 RF for loc. 11: 4+4*x2 RF for loc. 12: 4*x2 RF for loc. 13: 4*x2 RF for loc. 14: 2+4*x2 RF for loc. 15: 4*x2 RF for loc. 16: 2+4*x2 RF for loc. 20: 4*x2 RF for loc. 24: 3+4*x2 RF for loc. 28: 4*x2 Bound for (chained) transitions 13: 9 - Rank function 4: RF for loc. 10: -2+5*x3 RF for loc. 11: 1+5*x3 RF for loc. 12: 5*x3 RF for loc. 13: 5*x3 RF for loc. 14: -1+5*x3 RF for loc. 15: 5*x3 RF for loc. 16: -1+5*x3 RF for loc. 20: 5*x3 RF for loc. 24: 5*x3 RF for loc. 28: -1+5*x3 Bound for (chained) transitions 65: 9 - Rank function 5: RF for loc. 10: -2 RF for loc. 11: 1 RF for loc. 12: -3 RF for loc. 13: -4 RF for loc. 14: -1 RF for loc. 15: -5 RF for loc. 16: -1 RF for loc. 20: -4 RF for loc. 24: 0 RF for loc. 28: -6 Bound for (chained) transitions 14: -2 Bound for (chained) transitions 15: -3 Bound for (chained) transitions 16: -3 Bound for (chained) transitions 17: -3 Bound for (chained) transitions 23: -1 Bound for (chained) transitions 36: -4 Bound for (chained) transitions 45: 1 Bound for (chained) transitions 48: 0 Bound for (chained) transitions 49: 0 Bound for (chained) transitions 50: 0 Bound for (chained) transitions 60: -5 - Rank function 6: RF for loc. 13: 1+2*x4 RF for loc. 14: 1+2*x1 RF for loc. 16: 2*x1 RF for loc. 20: 2*x4 Bound for (chained) transitions 21: 4 Bound for (chained) transitions 22: 4 Bound for (chained) transitions 37: 2 - Rank function 7: RF for loc. 13: 0 RF for loc. 14: 1 RF for loc. 16: 0 RF for loc. 20: -1 Bound for (chained) transitions 18: 1 - Rank function 8: RF for loc. 13: 1 RF for loc. 20: 0 Bound for (chained) transitions 33: 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 60 rulesP rules: f_1210(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17880, 1, v17882, v17883, 0, v17885, v17886, v17887, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1223(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1223(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1236(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 < v17887 && 2 <= v17880 && 2 <= v17886 f_1236(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1249(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1249(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1262(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1262(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1278(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1278(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1292(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1292(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1305(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1305(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1314(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1314(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1324(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1324(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1334(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1334(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1345(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1345(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v17883, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1355(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1355(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1365(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: v23891 != 0 f_1355(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1366(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: v23891 = 0 f_1365(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1379(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1379(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1393(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1393(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1708(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, v23891, 0, v17885, v17886, v17880, v17887, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1708(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v37845, v37846, v37847, v37848, v37849, v37850, 3, 2, 4) -> f_1717(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v37846, v37847, v37848, v37849, v37850, 3, 2, 4) :|: 0 = 0 f_1717(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v37846, v37847, v37848, v37849, v37850, 3, 2, 4) -> f_1722(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) :|: 1 + v38758 = v37838 && 0 <= v38758 f_1722(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) -> f_1729(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) :|: TRUE f_1729(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) -> f_1736(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) :|: TRUE f_1736(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) -> f_1199(v37831, v37832, v37833, v37834, v37835, v37836, v37837, v37838, 1, v37840, v37841, 0, v37843, v37844, v38758, v37847, v37848, v37849, v37850, 3, 2, 4) :|: TRUE f_1199(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17880, 1, v17882, v17883, 0, v17885, v17886, v17887, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1210(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17880, 1, v17882, v17883, 0, v17885, v17886, v17887, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1366(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1380(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: 0 = 0 f_1380(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1394(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1394(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17888, v17889, v17890, v17891, 3, 2, 4) -> f_1710(v17873, v17874, v17875, v17876, v17877, v17878, v17879, v17887, 1, v17882, 0, v17885, v17886, v17880, v17887, v17888, v17889, v17890, v17891, 3, 2, 4) :|: TRUE f_1710(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1718(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v38757, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1718(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v38757, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1724(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: v38757 = 0 f_1724(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1731(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: 0 = 0 f_1731(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1738(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1738(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37964, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1744(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: 0 = 0 f_1744(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1751(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: 1 + v40119 = v37962 && 0 <= v40119 f_1751(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1759(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1759(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v37965, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1766(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v40806, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1766(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v40806, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1773(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v40806, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1773(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v40806, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1782(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v40806, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1782(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v40119, v40806, v37966, v37967, v37968, v37969, v37970, v37971, 3, 2, 4) -> f_1512(v37953, v37954, v37955, v37956, v37957, v37958, v37959, v37960, 1, v37962, 0, v37966, v37967, v40119, v40806, v37968, v37969, v37970, v37971, 3, 2, 4) :|: TRUE f_1512(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28042, 1, v28044, 0, v28046, v28047, v28048, v28049, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1519(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28042, 1, v28044, 0, v28046, v28047, v28048, v28049, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1519(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28042, 1, v28044, 0, v28046, v28047, v28048, v28049, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1526(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28042, 1, v28044, 0, v28046, v28047, v28048, v28049, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1526(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28042, 1, v28044, 0, v28046, v28047, v28048, v28049, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1534(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1534(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1542(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 < v28049 f_1542(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1553(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1553(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1563(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1563(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1574(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1574(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1586(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1586(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1600(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1600(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28044, 0, v28046, v28047, v28048, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1613(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1613(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1626(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 < v28048 && 2 <= v28044 && 2 <= v28041 f_1626(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1638(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1638(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1650(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1650(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1663(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1663(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1675(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1675(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1687(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: v36552 != 0 f_1675(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1688(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: v36552 = 0 f_1687(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1698(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, v28046, v28047, 0, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1698(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, v28046, v28047, 0, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1707(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, v28046, v28047, 0, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1707(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, v28046, v28047, 0, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1708(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, v36552, 0, v28044, v28049, v28046, v28047, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1688(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1699(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: 0 = 0 f_1699(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1709(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE f_1709(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28046, v28047, v28044, v28050, v28051, v28052, v28053, 3, 2, 4) -> f_1710(v28035, v28036, v28037, v28038, v28039, v28040, v28041, v28049, 1, v28048, 0, v28044, v28049, v28046, v28047, v28050, v28051, v28052, v28053, 3, 2, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_1675(v28035:0, v28036:0, v28037:0, v28038:0, v28039:0, v28040:0, v28041:0, 1 + v38758:0, 1, v28048:0, v36552:0, 0, v28046:0, v28047:0, v28044:0, v28050:0, v28051:0, v28052:0, v28053:0, 3, 2, 4) -> f_1210(v28035:0, v28036:0, v28037:0, v28038:0, v28039:0, v28040:0, v28041:0, 1 + v38758:0, 1, v28048:0, v36552:0, 0, v28044:0, 1 + v38758:0, v38758:0, v28050:0, v28051:0, v28052:0, v28053:0, 3, 2, 4) :|: v36552:0 < 0 && v38758:0 > -1 f_1675(v28035:0, v28036:0, v28037:0, v28038:0, v28039:0, v28040:0, v28041:0, 1 + v38758:0, 1, v28048:0, v36552:0, 0, v28046:0, v28047:0, v28044:0, v28050:0, v28051:0, v28052:0, v28053:0, 3, 2, 4) -> f_1210(v28035:0, v28036:0, v28037:0, v28038:0, v28039:0, v28040:0, v28041:0, 1 + v38758:0, 1, v28048:0, v36552:0, 0, v28044:0, 1 + v38758:0, v38758:0, v28050:0, v28051:0, v28052:0, v28053:0, 3, 2, 4) :|: v36552:0 > 0 && v38758:0 > -1 f_1210(v17873:0, v17874:0, v17875:0, v17876:0, v17877:0, v17878:0, v17879:0, v17880:0, 1, v17882:0, v17883:0, 0, v17885:0, v17886:0, 1 + v38758:0, v17888:0, v17889:0, v17890:0, v17891:0, 3, 2, 4) -> f_1210(v17873:0, v17874:0, v17875:0, v17876:0, v17877:0, v17878:0, v17879:0, 1 + v38758:0, 1, v17882:0, v23891:0, 0, v17885:0, v17886:0, v38758:0, v17888:0, v17889:0, v17890:0, v17891:0, 3, 2, 4) :|: v17880:0 > 1 && v38758:0 > -1 && v17886:0 > 1 && v23891:0 < 0 f_1210(v17873:0, v17874:0, v17875:0, v17876:0, v17877:0, v17878:0, v17879:0, v17880:0, 1, v17882:0, v17883:0, 0, v17885:0, v17886:0, 1 + v38758:0, v17888:0, v17889:0, v17890:0, v17891:0, 3, 2, 4) -> f_1210(v17873:0, v17874:0, v17875:0, v17876:0, v17877:0, v17878:0, v17879:0, 1 + v38758:0, 1, v17882:0, v23891:0, 0, v17885:0, v17886:0, v38758:0, v17888:0, v17889:0, v17890:0, v17891:0, 3, 2, 4) :|: v17880:0 > 1 && v38758:0 > -1 && v17886:0 > 1 && v23891:0 > 0 f_1210(v17873:0, v17874:0, v17875:0, v17876:0, v17877:0, v17878:0, v17879:0, v17880:0, 1, 1 + v40119:0, v17883:0, 0, v17885:0, v17886:0, v17887:0, v17888:0, v17889:0, v17890:0, v17891:0, 3, 2, 4) -> f_1675(v17873:0, v17874:0, v17875:0, v17876:0, v17877:0, v17878:0, v17879:0, v40806:0, 1, v40119:0, v36552:0, 0, v17880:0, v17887:0, 1 + v40119:0, v17888:0, v17889:0, v17890:0, v17891:0, 3, 2, 4) :|: v40119:0 > 0 && v17880:0 > 1 && v17887:0 > 0 && v17886:0 > 1 && v40806:0 > 0 && v17879:0 > 1 f_1675(v28035:0, v28036:0, v28037:0, v28038:0, v28039:0, v28040:0, v28041:0, v28049:0, 1, 1 + v40119:0, 0, 0, v28046:0, v28047:0, v28044:0, v28050:0, v28051:0, v28052:0, v28053:0, 3, 2, 4) -> f_1675(v28035:0, v28036:0, v28037:0, v28038:0, v28039:0, v28040:0, v28041:0, v40806:0, 1, v40119:0, v36552:1, 0, v28046:0, v28047:0, 1 + v40119:0, v28050:0, v28051:0, v28052:0, v28053:0, 3, 2, 4) :|: v40119:0 > 0 && v40806:0 > 0 && v28041:0 > 1 Filtered unneeded arguments: f_1675(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1675(x7, x8, x10, x11) f_1210(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1210(x7, x8, x10, x14, x15) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_1675(v28041:0, sum~cons_1~v38758:0, v28048:0, v36552:0) -> f_1210(v28041:0, 1 + v38758:0, v28048:0, 1 + v38758:0, v38758:0) :|: v36552:0 < 0 && v38758:0 > -1 && sum~cons_1~v38758:0 = 1 + v38758:0 f_1675(v28041:0, sum~cons_1~v38758:0, v28048:0, v36552:0) -> f_1210(v28041:0, 1 + v38758:0, v28048:0, 1 + v38758:0, v38758:0) :|: v36552:0 > 0 && v38758:0 > -1 && sum~cons_1~v38758:0 = 1 + v38758:0 f_1210(v17879:0, v17880:0, v17882:0, v17886:0, sum~cons_1~v38758:0) -> f_1210(v17879:0, 1 + v38758:0, v17882:0, v17886:0, v38758:0) :|: v38758:0 > -1 && v17886:0 > 1 && v17880:0 > 1 && sum~cons_1~v38758:0 = 1 + v38758:0 f_1210(v17879:0, v17880:0, sum~cons_1~v40119:0, v17886:0, v17887:0) -> f_1675(v17879:0, v40806:0, v40119:0, v36552:0) :|: v17880:0 > 1 && v40119:0 > 0 && v17887:0 > 0 && v17886:0 > 1 && v17879:0 > 1 && v40806:0 > 0 && sum~cons_1~v40119:0 = 1 + v40119:0 f_1675(v28041:0, v28049:0, sum~cons_1~v40119:0, cons_0) -> f_1675(v28041:0, v40806:0, v40119:0, v36552:1) :|: v40806:0 > 0 && v28041:0 > 1 && v40119:0 > 0 && sum~cons_1~v40119:0 = 1 + v40119:0 && cons_0 = 0 ---------------------------------------- (16) Obligation: Rules: f_1675(v28041:0, sum~cons_1~v38758:0, v28048:0, v36552:0) -> f_1210(v28041:0, 1 + v38758:0, v28048:0, 1 + v38758:0, v38758:0) :|: v36552:0 < 0 && v38758:0 > -1 && sum~cons_1~v38758:0 = 1 + v38758:0 f_1675(x, x1, x2, x3) -> f_1210(x, 1 + x4, x2, 1 + x4, x4) :|: x3 > 0 && x4 > -1 && x1 = 1 + x4 f_1210(x5, x6, x7, x8, x9) -> f_1210(x5, 1 + x10, x7, x8, x10) :|: x10 > -1 && x8 > 1 && x6 > 1 && x9 = 1 + x10 f_1210(x11, x12, x13, x14, x15) -> f_1675(x11, x16, x17, x18) :|: x12 > 1 && x17 > 0 && x15 > 0 && x14 > 1 && x11 > 1 && x16 > 0 && x13 = 1 + x17 f_1675(x19, x20, x21, x22) -> f_1675(x19, x23, x24, x25) :|: x23 > 0 && x19 > 1 && x24 > 0 && x21 = 1 + x24 && x22 = 0 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1675_5,1) (f_1210_5,2) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; assume(oldX3 < 0 && oldX5 > -1 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := 1 + oldX5; x2 := oldX2; x3 := 1 + oldX5; x4 := oldX1 - 1; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; assume(oldX3 > 0 && oldX5 > -1 && oldX1 = 1 + oldX5); x0 := oldX0; x1 := 1 + oldX5; x2 := oldX2; x3 := 1 + oldX5; x4 := oldX1 - 1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX4 - 1; assume(oldX5 > -1 && oldX3 > 1 && oldX1 > 1 && oldX4 = 1 + oldX5); x0 := oldX0; x1 := 1 + oldX5; x2 := oldX2; x3 := oldX3; x4 := oldX4 - 1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX6 := oldX2 - 1; oldX5 := nondet(); oldX7 := nondet(); oldX8 := nondet(); assume(oldX1 > 1 && oldX6 > 0 && oldX4 > 0 && oldX3 > 1 && oldX0 > 1 && oldX5 > 0 && oldX2 = 1 + oldX6); x0 := oldX0; x1 := oldX5; x2 := oldX2 - 1; x3 := oldX7; x4 := oldX8; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX6 := oldX2 - 1; oldX5 := nondet(); oldX7 := nondet(); oldX8 := nondet(); assume(oldX5 > 0 && oldX0 > 1 && oldX6 > 0 && oldX2 = 1 + oldX6 && oldX3 = 0); x0 := oldX0; x1 := oldX5; x2 := oldX2 - 1; x3 := oldX7; x4 := oldX8; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: - Rank function 1: RF for loc. 6: 2+3*x2 RF for loc. 7: 3*x2 RF for loc. 8: 1+3*x2 RF for loc. 12: 3*x2 Bound for (chained) transitions 7: 7 Bound for (chained) transitions 21: 6 - Rank function 2: RF for loc. 6: 3*x1 RF for loc. 7: 1+3*x4 RF for loc. 8: -1+3*x1 RF for loc. 12: 3*x4 Bound for (chained) transitions 5: 2 Bound for (chained) transitions 20: 3 - Rank function 3: RF for loc. 6: 1 RF for loc. 7: -1 RF for loc. 8: 0 RF for loc. 12: -2 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 6: 0 Bound for (chained) transitions 17: -1 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 69 rulesP rules: f_1401(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v24647, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1412(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) :|: 0 = 0 f_1412(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1425(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) :|: 1 + v25205 = v24643 && 0 <= v25205 f_1425(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1438(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) :|: TRUE f_1438(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v24648, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1451(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v25799, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) :|: TRUE f_1451(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v25799, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1462(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v25799, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) :|: TRUE f_1462(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v25799, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1474(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v25799, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) :|: TRUE f_1474(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v25205, v25799, v24649, v24650, v24651, v24652, v24653, v24654, 3, 2, 4) -> f_1133(v24634, v24635, v24636, v24637, v24638, v24639, v24640, v24641, 1, v24643, v24644, 0, v24646, v24649, v24650, v25205, v25799, v24651, v24652, v24653, v24654, 3, 2, 4) :|: TRUE f_1133(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1144(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1144(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1155(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1155(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1166(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1166(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1179(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1179(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1190(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1190(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15448, v15449, 0, v15451, v15452, v15453, v15454, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1200(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1200(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1211(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 < v15454 && 2 <= v15448 && 2 <= v15444 f_1211(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1224(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1224(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1238(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1238(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15449, 0, v15451, v15452, v15453, v15448, v15455, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1251(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1251(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1264(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 < v15455 f_1264(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1280(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1280(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1294(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1294(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1306(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1306(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1315(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, v22407, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1315(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, v22407, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1326(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: v22407 = 0 f_1326(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1336(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1336(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1347(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1347(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15451, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1357(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1357(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1368(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: v23892 != 0 f_1357(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1369(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: v23892 = 0 f_1368(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1382(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1382(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1396(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1396(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1063(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v23892, v15448, v15455, v15452, v15453, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1063(v13036, v13037, v13038, v13039, v13040, v13041, v13042, v13043, 1, v13045, v13046, 0, v13048, v13049, v13050, v13051, v13052, v13053, v13054, v13055, v13056, 3, 2, 4) -> f_1401(v13036, v13037, v13038, v13039, v13040, v13041, v13042, v13043, 1, v13045, v13046, 0, v13048, v13049, v13050, v13051, v13052, v13053, v13054, v13055, v13056, 3, 2, 4) :|: TRUE f_1369(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1383(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: 0 = 0 f_1383(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1397(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1397(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15452, v15453, v15448, v15456, v15457, v15458, v15459, 3, 2, 4) -> f_1065(v15439, v15440, v15441, v15442, v15443, v15444, v15445, v15446, 1, v15454, v15455, 0, v15448, v15455, v15452, v15453, v15456, v15457, v15458, v15459, 3, 2, 4) :|: TRUE f_1065(v13109, v13110, v13111, v13112, v13113, v13114, v13115, v13116, 1, v13118, v13119, 0, v13121, v13122, v13123, v13124, v13125, v13126, v13127, v13128, 3, 2, 4) -> f_1403(v13109, v13110, v13111, v13112, v13113, v13114, v13115, v13116, 1, v13118, v13119, 0, v13121, v13122, v13123, v13124, v13125, v13126, v13127, v13128, 3, 2, 4) :|: TRUE f_1403(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v24738, v24739, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1413(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v24739, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1413(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v24739, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1426(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 1 + v25206 = v24734 && 0 <= v25206 f_1426(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1439(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1439(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1452(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1452(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1463(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1463(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1475(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1475(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1486(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1486(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1495(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1495(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v24731, 1, v24733, v24734, 0, v24736, v24737, v25206, v25800, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1504(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1504(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1515(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 < v25800 f_1515(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1522(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1522(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1529(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1529(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1537(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1537(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1548(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1548(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1559(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1559(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v24734, 0, v24736, v24737, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1569(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1569(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1580(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 < v25206 && 2 <= v24734 f_1580(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1594(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1594(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1607(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1607(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1619(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1619(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1631(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, v33975, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1631(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, v33975, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1644(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: v33975 = 0 f_1644(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1657(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1657(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1670(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1670(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1682(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1682(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1696(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: v36938 != 0 f_1682(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1697(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: v36938 = 0 f_1696(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1705(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1705(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1715(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1715(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1401(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v36938, v24736, v24737, v24734, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1697(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1706(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: 0 = 0 f_1706(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1716(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE f_1716(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v24740, v24741, v24742, v24743, 3, 2, 4) -> f_1403(v24724, v24725, v24726, v24727, v24728, v24729, v24730, v25800, 1, v24733, v25206, 0, v24736, v24737, v24734, v25206, v24740, v24741, v24742, v24743, 3, 2, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_1401(v24634:0, v24635:0, v24636:0, v24637:0, v24638:0, v24639:0, v24640:0, v24641:0, 1, 1 + v25205:0, v24644:0, 0, v24646:0, v24647:0, v24648:0, v24649:0, v24650:0, v24651:0, v24652:0, v24653:0, v24654:0, 3, 2, 4) -> f_1401(v24634:0, v24635:0, v24636:0, v24637:0, v24638:0, v24639:0, v24640:0, v24641:0, 1, v25205:0, v25799:0, 0, v23892:0, 1 + v25205:0, v25799:0, v24649:0, v24650:0, v24651:0, v24652:0, v24653:0, v24654:0, 3, 2, 4) :|: v25205:0 > 0 && v24639:0 > 1 && v23892:0 < 0 && v25799:0 > 0 f_1401(v24634:0, v24635:0, v24636:0, v24637:0, v24638:0, v24639:0, v24640:0, v24641:0, 1, 1 + v25205:0, v24644:0, 0, v24646:0, v24647:0, v24648:0, v24649:0, v24650:0, v24651:0, v24652:0, v24653:0, v24654:0, 3, 2, 4) -> f_1401(v24634:0, v24635:0, v24636:0, v24637:0, v24638:0, v24639:0, v24640:0, v24641:0, 1, v25205:0, v25799:0, 0, v23892:0, 1 + v25205:0, v25799:0, v24649:0, v24650:0, v24651:0, v24652:0, v24653:0, v24654:0, 3, 2, 4) :|: v25205:0 > 0 && v24639:0 > 1 && v23892:0 > 0 && v25799:0 > 0 f_1401(v24634:0, v24635:0, v24636:0, v24637:0, v24638:0, v24639:0, v24640:0, v24641:0, 1, 1 + v25205:0, v24644:0, 0, v24646:0, v24647:0, v24648:0, v24649:0, v24650:0, v24651:0, v24652:0, v24653:0, v24654:0, 3, 2, 4) -> f_1682(v24634:0, v24635:0, v24636:0, v24637:0, v24638:0, v24639:0, v24640:0, v25800:0, 1, v25205:0, v25206:0, 0, v36938:0, 1 + v25205:0, 1 + v25206:0, 1 + v25206:0, v24651:0, v24652:0, v24653:0, v24654:0, 3, 2, 4) :|: v25205:0 > 0 && v25206:0 > 0 && v25800:0 > 0 && v24639:0 > 1 f_1682(v24724:0, v24725:0, v24726:0, v24727:0, v24728:0, v24729:0, v24730:0, v25800:0, 1, v24733:0, 1 + v25206:1, 0, 0, v24736:0, v24737:0, v24734:0, v24740:0, v24741:0, v24742:0, v24743:0, 3, 2, 4) -> f_1682(v24724:0, v24725:0, v24726:0, v24727:0, v24728:0, v24729:0, v24730:0, v25800:1, 1, v24733:0, v25206:1, 0, v36938:1, v24736:0, v24737:0, 1 + v25206:1, v24740:0, v24741:0, v24742:0, v24743:0, 3, 2, 4) :|: v25206:1 > 0 && v25800:1 > 0 f_1682(v24724:0, v24725:0, v24726:0, v24727:0, v24728:0, v24729:0, v24730:0, v25800:0, 1, v24733:0, v25206:0, 0, v36938:0, v24736:0, v24737:0, v24734:0, v24740:0, v24741:0, v24742:0, v24743:0, 3, 2, 4) -> f_1401(v24724:0, v24725:0, v24726:0, v24727:0, v24728:0, v24729:0, v24730:0, v25800:0, 1, v24733:0, v25206:0, 0, v36938:0, v24736:0, v24737:0, v24734:0, v25206:0, v24740:0, v24741:0, v24742:0, v24743:0, 3, 2, 4) :|: v36938:0 < 0 f_1682(v24724:0, v24725:0, v24726:0, v24727:0, v24728:0, v24729:0, v24730:0, v25800:0, 1, v24733:0, v25206:0, 0, v36938:0, v24736:0, v24737:0, v24734:0, v24740:0, v24741:0, v24742:0, v24743:0, 3, 2, 4) -> f_1401(v24724:0, v24725:0, v24726:0, v24727:0, v24728:0, v24729:0, v24730:0, v25800:0, 1, v24733:0, v25206:0, 0, v36938:0, v24736:0, v24737:0, v24734:0, v25206:0, v24740:0, v24741:0, v24742:0, v24743:0, 3, 2, 4) :|: v36938:0 > 0 Filtered unneeded arguments: f_1401(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24) -> f_1401(x6, x10) f_1682(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1682(x6, x10, x11, x13) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_1401(v24639:0, sum~cons_1~v25205:0) -> f_1401(v24639:0, v25205:0) :|: v25205:0 > 0 && v24639:0 > 1 && sum~cons_1~v25205:0 = 1 + v25205:0 f_1401(v24639:0, sum~cons_1~v25205:0) -> f_1682(v24639:0, v25205:0, v25206:0, v36938:0) :|: v25206:0 > 0 && v24639:0 > 1 && v25205:0 > 0 && sum~cons_1~v25205:0 = 1 + v25205:0 f_1682(v24729:0, v24733:0, sum~cons_1~v25206:1, cons_0) -> f_1682(v24729:0, v24733:0, v25206:1, v36938:1) :|: v25206:1 > 0 && sum~cons_1~v25206:1 = 1 + v25206:1 && cons_0 = 0 f_1682(v24729:0, v24733:0, v25206:0, v36938:0) -> f_1401(v24729:0, v24733:0) :|: v36938:0 < 0 f_1682(v24729:0, v24733:0, v25206:0, v36938:0) -> f_1401(v24729:0, v24733:0) :|: v36938:0 > 0 ---------------------------------------- (23) Obligation: Rules: f_1401(v24639:0, sum~cons_1~v25205:0) -> f_1401(v24639:0, v25205:0) :|: v25205:0 > 0 && v24639:0 > 1 && sum~cons_1~v25205:0 = 1 + v25205:0 f_1401(x, x1) -> f_1682(x, x2, x3, x4) :|: x3 > 0 && x > 1 && x2 > 0 && x1 = 1 + x2 f_1682(v24729:0, v24733:0, sum~cons_1~v25206:1, cons_0) -> f_1682(v24729:0, v24733:0, v25206:1, v36938:1) :|: v25206:1 > 0 && sum~cons_1~v25206:1 = 1 + v25206:1 && cons_0 = 0 f_1682(x5, x6, x7, x8) -> f_1401(x5, x6) :|: x8 < 0 f_1682(x9, x10, x11, x12) -> f_1401(x9, x10) :|: x12 > 0 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1401_4,1) (f_1682_4,2) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX1 - 1; oldX5 := nondet(); oldX6 := nondet(); assume(oldX4 > 0 && oldX0 > 1 && oldX1 = 1 + oldX4); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX5; x3 := oldX6; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX1 - 1; oldX5 := nondet(); oldX6 := nondet(); assume(oldX5 > 0 && oldX0 > 1 && oldX4 > 0 && oldX1 = 1 + oldX4); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX5; x3 := oldX6; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX2 - 1; oldX5 := nondet(); assume(oldX4 > 0 && oldX2 = 1 + oldX4 && oldX3 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX5; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := nondet(); oldX5 := nondet(); assume(oldX3 < 0); x0 := oldX0; x1 := oldX1; x2 := oldX4; x3 := oldX5; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := nondet(); oldX5 := nondet(); assume(oldX3 > 0); x0 := oldX0; x1 := oldX1; x2 := oldX4; x3 := oldX5; TO: 1; ---------------------------------------- (26) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18, 19 using the following rank functions: - Rank function 1: RF for loc. 6: -1+3*x1 RF for loc. 7: 3*x1 RF for loc. 8: -2+3*x1 RF for loc. 12: 3*x1 Bound for (chained) transitions 5: 4 Bound for (chained) transitions 6: 4 - Rank function 2: RF for loc. 6: -1 RF for loc. 7: 0 RF for loc. 8: -2 RF for loc. 12: 0 Bound for (chained) transitions 2: -1 Bound for (chained) transitions 18: 0 Bound for (chained) transitions 19: 0 - Rank function 3: RF for loc. 7: 2*x2 RF for loc. 12: -1+2*x2 Bound for (chained) transitions 17: 3 - Rank function 4: RF for loc. 7: 0 RF for loc. 12: -1 Bound for (chained) transitions 14: 0 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 58 rulesP rules: f_800(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5710, 1, v5712, v5713, v5714, v5715, v5716, v5717, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_811(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_811(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_822(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 < v5717 && 2 <= v5710 && 2 <= v5707 f_822(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_833(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_833(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_842(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_842(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_851(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_851(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_862(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_862(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_870(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_870(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_877(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_877(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_885(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_885(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_895(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_895(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_904(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_904(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v5714, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_913(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_913(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_925(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: v9114 != 0 f_913(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_926(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: v9114 = 0 f_925(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_938(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_938(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_950(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_950(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_961(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 0 = 0 f_961(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_973(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: 1 + v10865 = v5717 && 0 <= v10865 f_973(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_985(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_985(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_998(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_998(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_788(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, v9114, v5715, v5716, v10865, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_788(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5710, 1, v5712, v5713, v5714, v5715, v5716, v5717, v5718, v5719, v5720, v5721, 0, 3, 2, 4) -> f_800(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5710, 1, v5712, v5713, v5714, v5715, v5716, v5717, v5718, v5719, v5720, v5721, 0, 3, 2, 4) :|: TRUE f_926(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_939(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: 0 = 0 f_939(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_951(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_951(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5715, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_962(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_962(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_974(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: v10806 != 0 f_974(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_986(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: 0 = 0 f_986(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_999(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_999(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5716, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1011(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: 0 = 0 f_1011(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1023(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: 1 + v12281 = v5712 && 0 <= v12281 f_1023(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1037(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_1037(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1051(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v12381, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_1051(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v12381, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1066(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v12381, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_1066(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v12381, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1075(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v12381, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_1075(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v10806, v12281, v12381, v5710, v5718, v5719, v5720, v5721, 3, 2, 4) -> f_1076(v5703, v5704, v5705, v5706, v5707, v5708, v5709, v5717, 1, v5712, v5713, 0, v5710, v10806, v12281, v12381, v5718, v5719, v5720, v5721, 3, 2, 4) :|: TRUE f_1076(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1086(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1086(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1098(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1098(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1110(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1110(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1121(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1121(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1135(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1135(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13435, v13436, 0, v13438, v13439, v13440, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1146(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1146(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1157(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 < v13440 && 2 <= v13435 && 2 <= v13431 f_1157(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1168(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1168(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1182(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1182(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13436, 0, v13438, v13439, v13435, v13441, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1193(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1193(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1203(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 < v13441 f_1203(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1215(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1215(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1228(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1228(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1241(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1241(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1254(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1254(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1269(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: v20370 != 0 f_1254(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1270(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: v20370 = 0 f_1269(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1284(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 0, 3, 2, 4) :|: 0 = 0 f_1284(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 0, 3, 2, 4) -> f_1298(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 0, 3, 2, 4) :|: TRUE f_1298(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 0, 3, 2, 4) -> f_950(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, v20370, v13439, v13435, v13438, v13442, v13443, v13444, v13445, 0, 3, 2, 4) :|: TRUE f_1270(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1285(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: 0 = 0 f_1285(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_1299(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE f_1299(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13438, v13439, v13435, v13442, v13443, v13444, v13445, 3, 2, 4) -> f_951(v13426, v13427, v13428, v13429, v13430, v13431, v13432, v13433, 1, v13440, v13441, 0, v13439, v13435, v13438, v13442, v13443, v13444, v13445, 3, 2, 4) :|: TRUE Combined rules. Obtained 8 rulesP rules: f_800(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, v5710:0, 1, 1 + v12281:0, v5713:0, v5714:0, v5715:0, v5716:0, v5717:0, v5718:0, v5719:0, v5720:0, v5721:0, 0, 3, 2, 4) -> f_1254(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, v5717:0, 1, v12281:0, v12381:0, v20370:0, 0, v5710:0, v10806:0, 1 + v12281:0, v5718:0, v5719:0, v5720:0, v5721:0, 3, 2, 4) :|: v12281:0 > 0 && v5710:0 > 1 && v5717:0 > 0 && v5707:0 > 1 && v10806:0 < 0 && v12381:0 > 0 && v5708:0 > 1 f_800(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, v5710:0, 1, 1 + v12281:0, v5713:0, v5714:0, v5715:0, v5716:0, v5717:0, v5718:0, v5719:0, v5720:0, v5721:0, 0, 3, 2, 4) -> f_1254(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, v5717:0, 1, v12281:0, v12381:0, v20370:0, 0, v5710:0, v10806:0, 1 + v12281:0, v5718:0, v5719:0, v5720:0, v5721:0, 3, 2, 4) :|: v12281:0 > 0 && v5710:0 > 1 && v5717:0 > 0 && v5707:0 > 1 && v10806:0 > 0 && v12381:0 > 0 && v5708:0 > 1 f_800(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, v5710:0, 1, v5712:0, v5713:0, v5714:0, v5715:0, v5716:0, 1 + v10865:0, v5718:0, v5719:0, v5720:0, v5721:0, 0, 3, 2, 4) -> f_800(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, 1 + v10865:0, 1, v5712:0, v5713:0, v9114:0, v5715:0, v5716:0, v10865:0, v5718:0, v5719:0, v5720:0, v5721:0, 0, 3, 2, 4) :|: v5710:0 > 1 && v10865:0 > -1 && v5707:0 > 1 && v9114:0 < 0 f_800(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, v5710:0, 1, v5712:0, v5713:0, v5714:0, v5715:0, v5716:0, 1 + v10865:0, v5718:0, v5719:0, v5720:0, v5721:0, 0, 3, 2, 4) -> f_800(v5703:0, v5704:0, v5705:0, v5706:0, v5707:0, v5708:0, v5709:0, 1 + v10865:0, 1, v5712:0, v5713:0, v9114:0, v5715:0, v5716:0, v10865:0, v5718:0, v5719:0, v5720:0, v5721:0, 0, 3, 2, 4) :|: v5710:0 > 1 && v10865:0 > -1 && v5707:0 > 1 && v9114:0 > 0 f_1254(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, v13433:0, 1, 1 + v12281:0, v13441:0, 0, 0, v13438:0, v13439:0, v13435:0, v13442:0, v13443:0, v13444:0, v13445:0, 3, 2, 4) -> f_1254(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, v13433:0, 1, v12281:0, v12381:0, v20370:1, 0, v13438:0, v10806:0, 1 + v12281:0, v13442:0, v13443:0, v13444:0, v13445:0, 3, 2, 4) :|: v12281:0 > 0 && v10806:0 < 0 && v12381:0 > 0 && v13431:0 > 1 f_1254(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, v13433:0, 1, 1 + v12281:0, v13441:0, 0, 0, v13438:0, v13439:0, v13435:0, v13442:0, v13443:0, v13444:0, v13445:0, 3, 2, 4) -> f_1254(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, v13433:0, 1, v12281:0, v12381:0, v20370:1, 0, v13438:0, v10806:0, 1 + v12281:0, v13442:0, v13443:0, v13444:0, v13445:0, 3, 2, 4) :|: v12281:0 > 0 && v10806:0 > 0 && v12381:0 > 0 && v13431:0 > 1 f_1254(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, 1 + v10865:0, 1, v13440:0, v13441:0, v20370:0, 0, v13438:0, v13439:0, v13435:0, v13442:0, v13443:0, v13444:0, v13445:0, 3, 2, 4) -> f_800(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, 1 + v10865:0, 1, v13440:0, v13441:0, v20370:0, v13439:0, v13435:0, v10865:0, v13442:0, v13443:0, v13444:0, v13445:0, 0, 3, 2, 4) :|: v20370:0 < 0 && v10865:0 > -1 f_1254(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, 1 + v10865:0, 1, v13440:0, v13441:0, v20370:0, 0, v13438:0, v13439:0, v13435:0, v13442:0, v13443:0, v13444:0, v13445:0, 3, 2, 4) -> f_800(v13426:0, v13427:0, v13428:0, v13429:0, v13430:0, v13431:0, v13432:0, 1 + v10865:0, 1, v13440:0, v13441:0, v20370:0, v13439:0, v13435:0, v10865:0, v13442:0, v13443:0, v13444:0, v13445:0, 0, 3, 2, 4) :|: v20370:0 > 0 && v10865:0 > -1 Filtered unneeded arguments: f_800(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_800(x5, x6, x8, x10, x15) f_1254(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1254(x5, x6, x8, x10, x12) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_800(v5707:0, v5708:0, v5710:0, sum~cons_1~v12281:0, v5717:0) -> f_1254(v5707:0, v5708:0, v5717:0, v12281:0, v20370:0) :|: v5710:0 > 1 && v12281:0 > 0 && v5717:0 > 0 && v5708:0 > 1 && v5707:0 > 1 && sum~cons_1~v12281:0 = 1 + v12281:0 f_800(v5707:0, v5708:0, v5710:0, v5712:0, sum~cons_1~v10865:0) -> f_800(v5707:0, v5708:0, 1 + v10865:0, v5712:0, v10865:0) :|: v10865:0 > -1 && v5707:0 > 1 && v5710:0 > 1 && sum~cons_1~v10865:0 = 1 + v10865:0 f_1254(v13430:0, v13431:0, v13433:0, sum~cons_1~v12281:0, cons_0) -> f_1254(v13430:0, v13431:0, v13433:0, v12281:0, v20370:1) :|: v12281:0 > 0 && v13431:0 > 1 && sum~cons_1~v12281:0 = 1 + v12281:0 && cons_0 = 0 f_1254(v13430:0, v13431:0, sum~cons_1~v10865:0, v13440:0, v20370:0) -> f_800(v13430:0, v13431:0, 1 + v10865:0, v13440:0, v10865:0) :|: v20370:0 < 0 && v10865:0 > -1 && sum~cons_1~v10865:0 = 1 + v10865:0 f_1254(v13430:0, v13431:0, sum~cons_1~v10865:0, v13440:0, v20370:0) -> f_800(v13430:0, v13431:0, 1 + v10865:0, v13440:0, v10865:0) :|: v20370:0 > 0 && v10865:0 > -1 && sum~cons_1~v10865:0 = 1 + v10865:0 ---------------------------------------- (30) Obligation: Rules: f_800(v5707:0, v5708:0, v5710:0, sum~cons_1~v12281:0, v5717:0) -> f_1254(v5707:0, v5708:0, v5717:0, v12281:0, v20370:0) :|: v5710:0 > 1 && v12281:0 > 0 && v5717:0 > 0 && v5708:0 > 1 && v5707:0 > 1 && sum~cons_1~v12281:0 = 1 + v12281:0 f_800(x, x1, x2, x3, x4) -> f_800(x, x1, 1 + x5, x3, x5) :|: x5 > -1 && x > 1 && x2 > 1 && x4 = 1 + x5 f_1254(x6, x7, x8, x9, x10) -> f_1254(x6, x7, x8, x11, x12) :|: x11 > 0 && x7 > 1 && x9 = 1 + x11 && x10 = 0 f_1254(x13, x14, x15, x16, x17) -> f_800(x13, x14, 1 + x18, x16, x18) :|: x17 < 0 && x18 > -1 && x15 = 1 + x18 f_1254(x19, x20, x21, x22, x23) -> f_800(x19, x20, 1 + x24, x22, x24) :|: x23 > 0 && x24 > -1 && x21 = 1 + x24 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_800_5,1) (f_1254_5,2) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX3 - 1; oldX6 := nondet(); assume(oldX2 > 1 && oldX5 > 0 && oldX4 > 0 && oldX1 > 1 && oldX0 > 1 && oldX3 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX4; x3 := oldX3 - 1; x4 := oldX6; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX4 - 1; assume(oldX5 > -1 && oldX0 > 1 && oldX2 > 1 && oldX4 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX5; x3 := oldX3; x4 := oldX4 - 1; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX3 - 1; oldX6 := nondet(); assume(oldX5 > 0 && oldX1 > 1 && oldX3 = 1 + oldX5 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3 - 1; x4 := oldX6; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX4 < 0 && oldX5 > -1 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX5; x3 := oldX3; x4 := oldX2 - 1; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX4 > 0 && oldX5 > -1 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX5; x3 := oldX3; x4 := oldX2 - 1; TO: 1; ---------------------------------------- (33) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18, 19 using the following rank functions: - Rank function 1: RF for loc. 6: 6*x4 RF for loc. 7: -5+6*x2 RF for loc. 8: -1+6*x4 RF for loc. 12: -5+6*x2 Bound for (chained) transitions 5: 5 Bound for (chained) transitions 6: 5 Bound for (chained) transitions 18: 1 Bound for (chained) transitions 19: 1 - Rank function 2: RF for loc. 6: 1 RF for loc. 7: 2*x3 RF for loc. 8: 0 RF for loc. 12: -1+2*x3 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 17: 3 - Rank function 3: RF for loc. 7: 0 RF for loc. 12: -1 Bound for (chained) transitions 14: 0 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: SCC ---------------------------------------- (36) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 29 rulesP rules: f_603(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) -> f_607(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) :|: 0 = 0 f_607(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) -> f_611(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) :|: 0 = 0 f_611(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) -> f_616(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) :|: TRUE f_616(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) -> f_621(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 4) :|: 0 = 0 f_621(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 4) -> f_626(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 < v3142 && 2 <= v3138 && 2 <= v3135 f_626(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_633(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_633(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_640(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_640(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3139, 0, v3141, v3138, v3143, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_646(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_646(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_653(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 < v3143 f_653(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_662(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_662(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_669(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_669(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_676(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_676(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_685(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, v4296, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_685(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, v4296, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_694(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: v4296 = 0 f_694(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_702(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_702(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_710(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_710(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v3141, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_718(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_718(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_726(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: v5149 != 0 f_726(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_736(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_736(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_746(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_746(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3138, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_756(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 0 = 0 f_756(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_768(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v3144, v3145, v3146, v3147, 3, 2, 4) :|: 1 + v5632 = v3142 && 0 <= v5632 f_768(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_781(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_781(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_794(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_794(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_805(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_805(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_816(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_816(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_828(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) :|: TRUE f_828(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 2, 4) -> f_599(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3142, v3143, 0, v5149, v5632, v5965, v3144, v3145, v3146, v3147, 3, 4) :|: TRUE f_599(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) -> f_603(v3130, v3131, v3132, v3133, v3134, v3135, v3136, 1, v3138, v3139, 0, v3141, v3142, v3143, v3144, v3145, v3146, v3147, 3, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_603(v3130:0, v3131:0, v3132:0, v3133:0, v3134:0, v3135:0, v3136:0, 1, v3138:0, v3139:0, 0, v3141:0, 1 + v5632:0, v3143:0, v3144:0, v3145:0, v3146:0, v3147:0, 3, 4) -> f_603(v3130:0, v3131:0, v3132:0, v3133:0, v3134:0, v3135:0, v3136:0, 1, 1 + v5632:0, v3143:0, 0, v5149:0, v5632:0, v5965:0, v3144:0, v3145:0, v3146:0, v3147:0, 3, 4) :|: v3138:0 > 1 && v5632:0 > -1 && v3135:0 > 1 && v3143:0 > 0 && v5149:0 < 0 f_603(v3130:0, v3131:0, v3132:0, v3133:0, v3134:0, v3135:0, v3136:0, 1, v3138:0, v3139:0, 0, v3141:0, 1 + v5632:0, v3143:0, v3144:0, v3145:0, v3146:0, v3147:0, 3, 4) -> f_603(v3130:0, v3131:0, v3132:0, v3133:0, v3134:0, v3135:0, v3136:0, 1, 1 + v5632:0, v3143:0, 0, v5149:0, v5632:0, v5965:0, v3144:0, v3145:0, v3146:0, v3147:0, 3, 4) :|: v3138:0 > 1 && v5632:0 > -1 && v3135:0 > 1 && v3143:0 > 0 && v5149:0 > 0 Filtered unneeded arguments: f_603(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_603(x6, x9, x13, x14) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_603(v3135:0, v3138:0, sum~cons_1~v5632:0, v3143:0) -> f_603(v3135:0, 1 + v5632:0, v5632:0, v5965:0) :|: v5632:0 > -1 && v3138:0 > 1 && v3143:0 > 0 && v3135:0 > 1 && sum~cons_1~v5632:0 = 1 + v5632:0 ---------------------------------------- (37) Obligation: Rules: f_603(v3135:0, v3138:0, sum~cons_1~v5632:0, v3143:0) -> f_603(v3135:0, 1 + v5632:0, v5632:0, v5965:0) :|: v5632:0 > -1 && v3138:0 > 1 && v3143:0 > 0 && v3135:0 > 1 && sum~cons_1~v5632:0 = 1 + v5632:0 ---------------------------------------- (38) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_603_4,1) ---------------------------------------- (39) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX2 - 1; oldX5 := nondet(); assume(oldX4 > -1 && oldX1 > 1 && oldX3 > 0 && oldX0 > 1 && oldX2 = 1 + oldX4); x0 := oldX0; x1 := 1 + oldX4; x2 := oldX2 - 1; x3 := oldX5; TO: 1; ---------------------------------------- (40) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x2 RF for loc. 6: 2*x2 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (41) YES ---------------------------------------- (42) Obligation: SCC ---------------------------------------- (43) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 29 rulesP rules: f_600(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3090, 1, v3092, 0, v3094, v3095, v3096, v3097, v3098, v3099, 3, 4) -> f_604(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3090, 1, v3092, 0, v3094, v3095, v3096, v3097, v3098, v3099, 3, 4) :|: TRUE f_604(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3090, 1, v3092, 0, v3094, v3095, v3096, v3097, v3098, v3099, 3, 4) -> f_608(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: 0 = 0 f_608(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_612(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: 0 < v3095 f_612(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_617(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: 0 = 0 f_617(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_622(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: TRUE f_622(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_628(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: 0 = 0 f_628(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_635(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: 0 = 0 f_635(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_642(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) :|: TRUE f_642(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3092, 0, v3094, v3096, v3097, v3098, v3099, 3, 4) -> f_648(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 4) :|: 0 = 0 f_648(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 4) -> f_656(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 0 < v3094 && 2 <= v3092 && 2 <= v3089 f_656(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_664(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 0 = 0 f_664(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_671(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 0 = 0 f_671(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_678(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_678(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_687(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, v4297, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_687(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, v4297, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_696(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: v4297 = 0 f_696(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_704(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 0 = 0 f_704(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_712(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_712(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_720(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5150, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_720(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5150, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_730(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: v5150 = 0 f_730(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_740(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 0 = 0 f_740(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_750(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_750(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3092, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_760(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 0 = 0 f_760(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_772(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v3096, v3097, v3098, v3099, 3, 2, 4) :|: 1 + v5635 = v3094 && 0 <= v5635 f_772(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_786(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_786(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_799(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_799(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_810(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_810(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_821(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 2, 4) :|: TRUE f_821(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 2, 4) -> f_593(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3095, 1, v3094, 0, v5635, v5968, v3096, v3097, v3098, v3099, 3, 4) :|: TRUE f_593(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3090, 1, v3092, 0, v3094, v3095, v3096, v3097, v3098, v3099, 3, 4) -> f_600(v3083, v3084, v3085, v3086, v3087, v3088, v3089, v3090, 1, v3092, 0, v3094, v3095, v3096, v3097, v3098, v3099, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_600(v3083:0, v3084:0, v3085:0, v3086:0, v3087:0, v3088:0, v3089:0, v3090:0, 1, v3092:0, 0, 1 + v5635:0, v3095:0, v3096:0, v3097:0, v3098:0, v3099:0, 3, 4) -> f_600(v3083:0, v3084:0, v3085:0, v3086:0, v3087:0, v3088:0, v3089:0, v3095:0, 1, 1 + v5635:0, 0, v5635:0, v5968:0, v3096:0, v3097:0, v3098:0, v3099:0, 3, 4) :|: v3095:0 > 0 && v3092:0 > 1 && v5635:0 > -1 && v3089:0 > 1 Filtered unneeded arguments: f_600(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_600(x7, x10, x12, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_600(v3089:0, v3092:0, sum~cons_1~v5635:0, v3095:0) -> f_600(v3089:0, 1 + v5635:0, v5635:0, v5968:0) :|: v3092:0 > 1 && v3095:0 > 0 && v3089:0 > 1 && v5635:0 > -1 && sum~cons_1~v5635:0 = 1 + v5635:0 ---------------------------------------- (44) Obligation: Rules: f_600(v3089:0, v3092:0, sum~cons_1~v5635:0, v3095:0) -> f_600(v3089:0, 1 + v5635:0, v5635:0, v5968:0) :|: v3092:0 > 1 && v3095:0 > 0 && v3089:0 > 1 && v5635:0 > -1 && sum~cons_1~v5635:0 = 1 + v5635:0 ---------------------------------------- (45) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_600_4,1) ---------------------------------------- (46) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX2 - 1; oldX5 := nondet(); assume(oldX1 > 1 && oldX3 > 0 && oldX0 > 1 && oldX4 > -1 && oldX2 = 1 + oldX4); x0 := oldX0; x1 := 1 + oldX4; x2 := oldX2 - 1; x3 := oldX5; TO: 1; ---------------------------------------- (47) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x2 RF for loc. 6: 2*x2 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (48) YES ---------------------------------------- (49) Obligation: SCC ---------------------------------------- (50) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 21 rulesP rules: f_445(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 4) -> f_450(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 < v1794 && 2 <= v1791 && 2 <= v1788 f_450(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_455(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_455(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_460(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_460(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_467(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_467(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_473(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_473(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_479(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_479(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_484(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_484(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_489(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_489(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_494(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_494(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_499(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_499(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_504(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_504(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_509(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: v2318 != 0 f_509(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_517(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_517(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_525(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_525(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1791, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_533(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 0 = 0 f_533(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_541(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: 1 + v2501 = v1794 && 0 <= v2501 f_541(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_550(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_550(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_561(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_561(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_572(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) :|: TRUE f_572(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 2, 4) -> f_440(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v2318, v2501, v1795, v1796, v1797, v1798, 0, 3, 4) :|: TRUE f_440(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1791, 1, v1793, v1794, v1795, v1796, v1797, v1798, 0, 3, 4) -> f_445(v1784, v1785, v1786, v1787, v1788, v1789, v1790, v1794, 1, v1793, v1791, v1795, v1796, v1797, v1798, 0, 3, 4) :|: 0 = 0 Combined rules. Obtained 2 rulesP rules: f_445(v1784:0, v1785:0, v1786:0, v1787:0, v1788:0, v1789:0, v1790:0, 1 + v2501:0, 1, v1793:0, v1791:0, v1795:0, v1796:0, v1797:0, v1798:0, 0, 3, 4) -> f_445(v1784:0, v1785:0, v1786:0, v1787:0, v1788:0, v1789:0, v1790:0, v2501:0, 1, v2318:0, 1 + v2501:0, v1795:0, v1796:0, v1797:0, v1798:0, 0, 3, 4) :|: v1791:0 > 1 && v2501:0 > -1 && v1788:0 > 1 && v2318:0 < 0 f_445(v1784:0, v1785:0, v1786:0, v1787:0, v1788:0, v1789:0, v1790:0, 1 + v2501:0, 1, v1793:0, v1791:0, v1795:0, v1796:0, v1797:0, v1798:0, 0, 3, 4) -> f_445(v1784:0, v1785:0, v1786:0, v1787:0, v1788:0, v1789:0, v1790:0, v2501:0, 1, v2318:0, 1 + v2501:0, v1795:0, v1796:0, v1797:0, v1798:0, 0, 3, 4) :|: v1791:0 > 1 && v2501:0 > -1 && v1788:0 > 1 && v2318:0 > 0 Filtered unneeded arguments: f_445(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_445(x5, x8, x11) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_445(v1788:0, sum~cons_1~v2501:0, v1791:0) -> f_445(v1788:0, v2501:0, 1 + v2501:0) :|: v2501:0 > -1 && v1788:0 > 1 && v1791:0 > 1 && sum~cons_1~v2501:0 = 1 + v2501:0 ---------------------------------------- (51) Obligation: Rules: f_445(v1788:0, sum~cons_1~v2501:0, v1791:0) -> f_445(v1788:0, v2501:0, 1 + v2501:0) :|: v2501:0 > -1 && v1788:0 > 1 && v1791:0 > 1 && sum~cons_1~v2501:0 = 1 + v2501:0 ---------------------------------------- (52) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_445_3,1) ---------------------------------------- (53) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := oldX1 - 1; assume(oldX3 > -1 && oldX0 > 1 && oldX2 > 1 && oldX1 = 1 + oldX3); x0 := oldX0; x1 := oldX1 - 1; x2 := 1 + oldX3; TO: 1; ---------------------------------------- (54) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 1+2*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 3: 2 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (55) YES