/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, 177 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 13.6 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 119 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 813 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 108 ms] (16) IntTRS (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 0 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 113 ms] (23) IntTRS (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] (25) IntTRS (26) RankingReductionPairProof [EQUIVALENT, 0 ms] (27) 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: "test_fun" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (x i32, y i32, z i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 %3 = alloca i32, align 4 %x_ref = alloca *i32, align 8 %y_ref = alloca *i32, align 8 %z_ref = alloca *i32, align 8 %c = alloca *i32, align 8 store %x, %1 store %y, %2 store %z, %3 %4 = alloca i8, numElementsLit: 4 %5 = bitcast *i8 %4 to *i32 store %5, %x_ref %6 = alloca i8, numElementsLit: 4 %7 = bitcast *i8 %6 to *i32 store %7, %y_ref %8 = alloca i8, numElementsLit: 4 %9 = bitcast *i8 %8 to *i32 store %9, %z_ref %10 = alloca i8, numElementsLit: 4 %11 = bitcast *i8 %10 to *i32 store %11, %c %12 = load %1 %13 = load %x_ref store %12, %13 %14 = load %2 %15 = load %y_ref store %14, %15 %16 = load %3 %17 = load %z_ref store %16, %17 %18 = load %c store 0, %18 br %19 19: %20 = load %x_ref %21 = load %20 %22 = load %z_ref %23 = load %22 %24 = icmp sgt %21 %23 br %24, %31, %25 25: %26 = load %y_ref %27 = load %26 %28 = load %z_ref %29 = load %28 %30 = icmp sgt %27 %29 br %31 31: %32 = phi [1, %19], [%30, %25] br %32, %33, %62 33: %34 = load %x_ref %35 = load %34 %36 = load %z_ref %37 = load %36 %38 = icmp sgt %35 %37 br %38, %39, %44 39: %40 = load %x_ref %41 = load %40 %42 = sub %41 1 %43 = load %x_ref store %42, %43 br %57 44: %45 = load %y_ref %46 = load %45 %47 = load %z_ref %48 = load %47 %49 = icmp sgt %46 %48 br %49, %50, %55 50: %51 = load %y_ref %52 = load %51 %53 = sub %52 1 %54 = load %y_ref store %53, %54 br %56 55: br %56 56: br %57 57: %58 = load %c %59 = load %58 %60 = add %59 1 %61 = load %c store %60, %61 br %19 62: %63 = load %c %64 = load %63 ret %64 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() %3 = call i32 @__VERIFIER_nondet_int() %4 = call i32 @__VERIFIER_nondet_int() %5 = call i32 @test_fun(i32 %2, i32 %3, i32 %4) ret %5 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 3 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 40 rulesP rules: f_1178(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5633, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) -> f_1180(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5633, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) :|: 0 = 0 f_1180(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5633, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) -> f_1182(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) :|: 0 = 0 f_1182(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) -> f_1184(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: v5695 = 1 + v5634 && 2 <= v5695 f_1184(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1186(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1186(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1188(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1188(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1190(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1190(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1192(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1192(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1194(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1194(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1196(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1196(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1198(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1198(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1200(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1200(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1202(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1202(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1204(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1204(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1206(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1206(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1208(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1208(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1210(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1210(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1212(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: v5618 < v5636 f_1212(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1215(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1215(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1218(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1218(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1221(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1221(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1223(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1223(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1225(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1225(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1227(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1227(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1229(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1229(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1230(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1230(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1231(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1231(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1232(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1232(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1233(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1233(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1234(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1234(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1235(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1235(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1236(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1236(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1237(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1237(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1238(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1238(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5635, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1239(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1239(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1240(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 1 + v6293 = v5636 f_1240(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1241(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: 0 = 0 f_1241(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1242(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1242(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1243(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) :|: TRUE f_1243(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8, 2) -> f_1176(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5634, v5695, v5636, v6293, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) :|: TRUE f_1176(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5633, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) -> f_1178(v5616, v5617, v5618, v5619, v5620, v5621, v5622, v5623, v5624, v5625, v5626, v5627, v5628, v5629, 0, 1, v5632, v5633, v5634, v5635, v5636, v5637, v5638, v5639, v5640, v5641, v5642, v5643, v5644, v5645, v5646, v5647, v5648, v5649, 3, 7, 4, 8) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1178(v5616:0, v5617:0, v5618:0, v5619:0, v5620:0, v5621:0, v5622:0, v5623:0, v5624:0, v5625:0, v5626:0, v5627:0, v5628:0, v5629:0, 0, 1, v5632:0, v5633:0, v5634:0, v5635:0, 1 + v6293:0, v5637:0, v5638:0, v5639:0, v5640:0, v5641:0, v5642:0, v5643:0, v5644:0, v5645:0, v5646:0, v5647:0, v5648:0, v5649:0, 3, 7, 4, 8) -> f_1178(v5616:0, v5617:0, v5618:0, v5619:0, v5620:0, v5621:0, v5622:0, v5623:0, v5624:0, v5625:0, v5626:0, v5627:0, v5628:0, v5629:0, 0, 1, v5632:0, v5634:0, 1 + v5634:0, 1 + v6293:0, v6293:0, v5637:0, v5638:0, v5639:0, v5640:0, v5641:0, v5642:0, v5643:0, v5644:0, v5645:0, v5646:0, v5647:0, v5648:0, v5649:0, 3, 7, 4, 8) :|: v5618:0 < 1 + v6293:0 && v5634:0 > 0 Filtered unneeded arguments: f_1178(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, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38) -> f_1178(x3, x19, x21) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1178(v5618:0, v5634:0, sum~cons_1~v6293:0) -> f_1178(v5618:0, 1 + v5634:0, v6293:0) :|: v5618:0 < 1 + v6293:0 && v5634:0 > 0 && sum~cons_1~v6293:0 = 1 + v6293:0 ---------------------------------------- (9) Obligation: Rules: f_1178(v5618:0, v5634:0, sum~cons_1~v6293:0) -> f_1178(v5618:0, 1 + v5634:0, v6293:0) :|: v5618:0 < 1 + v6293:0 && v5634:0 > 0 && sum~cons_1~v6293:0 = 1 + v6293:0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1178_3,1) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := oldX2 - 1; assume(oldX0 < 1 + oldX3 && oldX1 > 0 && oldX2 = 1 + oldX3); x0 := oldX0; x1 := 1 + oldX1; x2 := oldX2 - 1; TO: 1; ---------------------------------------- (12) 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: -x0+x2 RF for loc. 6: -x0+x2 Bound for (chained) transitions 3: 1 - Rank function 2: RF for loc. 5: -x0+x2 RF for loc. 6: -x0+x2 Bound for (chained) transitions 4: 1 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 40 rulesP rules: f_1130(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1133(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1133(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1136(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1136(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1139(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1139(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1141(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1141(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1143(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1143(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1145(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1145(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1147(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1147(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1149(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1149(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1151(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1151(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1153(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: v5112 < v5127 f_1153(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1156(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1156(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1159(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1159(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1162(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1162(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1165(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1165(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1168(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1168(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1171(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1171(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1174(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1174(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1177(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1177(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1179(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1179(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1181(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1181(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1183(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1183(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1185(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1185(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1187(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1187(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1189(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1189(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1191(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1191(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1193(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1193(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5125, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1195(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1195(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1197(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 1 + v5742 = v5127 f_1197(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1199(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1199(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1201(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1201(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1203(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1203(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1205(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1205(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1207(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1207(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1209(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 f_1209(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1211(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) :|: v5837 = 1 + v5129 && 2 <= v5837 f_1211(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) -> f_1214(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) :|: 0 = 0 f_1214(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) -> f_1217(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) :|: TRUE f_1217(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) -> f_1220(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) :|: TRUE f_1220(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8, 2) -> f_1127(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5127, 1, v5742, v5129, v5837, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: TRUE f_1127(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) -> f_1130(v5110, v5111, v5112, v5113, v5114, v5115, v5116, v5117, v5118, v5119, v5120, v5121, v5122, v5123, 0, v5125, 1, v5127, v5128, v5129, v5130, v5131, v5132, v5133, v5134, v5135, v5136, v5137, v5138, v5139, v5140, v5141, v5142, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1130(v5110:0, v5111:0, v5112:0, v5113:0, v5114:0, v5115:0, v5116:0, v5117:0, v5118:0, v5119:0, v5120:0, v5121:0, v5122:0, v5123:0, 0, v5125:0, 1, 1 + v5742:0, v5128:0, v5129:0, v5130:0, v5131:0, v5132:0, v5133:0, v5134:0, v5135:0, v5136:0, v5137:0, v5138:0, v5139:0, v5140:0, v5141:0, v5142:0, 3, 7, 4, 8) -> f_1130(v5110:0, v5111:0, v5112:0, v5113:0, v5114:0, v5115:0, v5116:0, v5117:0, v5118:0, v5119:0, v5120:0, v5121:0, v5122:0, v5123:0, 0, 1 + v5742:0, 1, v5742:0, v5129:0, 1 + v5129:0, v5130:0, v5131:0, v5132:0, v5133:0, v5134:0, v5135:0, v5136:0, v5137:0, v5138:0, v5139:0, v5140:0, v5141:0, v5142:0, 3, 7, 4, 8) :|: v5129:0 > 0 && v5112:0 < 1 + v5742:0 Filtered unneeded arguments: f_1130(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, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37) -> f_1130(x3, x18, x20) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1130(v5112:0, sum~cons_1~v5742:0, v5129:0) -> f_1130(v5112:0, v5742:0, 1 + v5129:0) :|: v5129:0 > 0 && v5112:0 < 1 + v5742:0 && sum~cons_1~v5742:0 = 1 + v5742:0 ---------------------------------------- (16) Obligation: Rules: f_1130(v5112:0, sum~cons_1~v5742:0, v5129:0) -> f_1130(v5112:0, v5742:0, 1 + v5129:0) :|: v5129:0 > 0 && v5112:0 < 1 + v5742:0 && sum~cons_1~v5742:0 = 1 + v5742:0 ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f_1130(v5112:0:0, sum~cons_1~v5742:0:0, v5129:0:0) -> f_1130(v5112:0:0, v5742:0:0, 1 + v5129:0:0) :|: v5129:0:0 > 0 && v5112:0:0 < 1 + v5742:0:0 && sum~cons_1~v5742:0:0 = 1 + v5742:0:0 ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_1130 ] = -1*f_1130_1 + f_1130_2 The following rules are decreasing: f_1130(v5112:0:0, sum~cons_1~v5742:0:0, v5129:0:0) -> f_1130(v5112:0:0, v5742:0:0, 1 + v5129:0:0) :|: v5129:0:0 > 0 && v5112:0:0 < 1 + v5742:0:0 && sum~cons_1~v5742:0:0 = 1 + v5742:0:0 The following rules are bounded: f_1130(v5112:0:0, sum~cons_1~v5742:0:0, v5129:0:0) -> f_1130(v5112:0:0, v5742:0:0, 1 + v5129:0:0) :|: v5129:0:0 > 0 && v5112:0:0 < 1 + v5742:0:0 && sum~cons_1~v5742:0:0 = 1 + v5742:0:0 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 27 rulesP rules: f_887(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2947, 1, v2949, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_889(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_889(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_891(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_891(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_893(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_893(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_895(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: v2935 < v2949 f_895(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_898(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_898(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_901(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_901(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_904(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: TRUE f_904(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_907(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_907(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_910(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_910(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_913(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_913(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_916(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_916(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_920(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_920(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_924(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: TRUE f_924(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_929(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_929(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2947, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_933(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_933(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_937(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 1 + v3349 = v2949 f_937(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_941(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_941(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_945(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: TRUE f_945(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_948(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: TRUE f_948(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_951(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_951(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_954(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 f_954(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_957(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) :|: v3381 = 1 + v2951 && 2 <= v3381 f_957(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) -> f_960(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_960(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) -> f_963(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) :|: TRUE f_963(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) -> f_967(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) :|: TRUE f_967(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8, 2) -> f_885(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2949, 1, v3349, v2951, v3381, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: TRUE f_885(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2947, 1, v2949, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) -> f_887(v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, v2941, v2942, v2943, v2944, v2945, v2946, v2947, 1, v2949, v2950, v2951, v2952, v2953, v2954, v2955, v2956, v2957, v2958, v2959, v2960, v2961, v2962, v2963, v2964, 0, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_887(v2933:0, v2934:0, v2935:0, v2936:0, v2937:0, v2938:0, v2939:0, v2940:0, v2941:0, v2942:0, v2943:0, v2944:0, v2945:0, v2946:0, v2947:0, 1, 1 + v3349:0, v2950:0, v2951:0, v2952:0, v2953:0, v2954:0, v2955:0, v2956:0, v2957:0, v2958:0, v2959:0, v2960:0, v2961:0, v2962:0, v2963:0, v2964:0, 0, 3, 7, 4, 8) -> f_887(v2933:0, v2934:0, v2935:0, v2936:0, v2937:0, v2938:0, v2939:0, v2940:0, v2941:0, v2942:0, v2943:0, v2944:0, v2945:0, v2946:0, 1 + v3349:0, 1, v3349:0, v2951:0, 1 + v2951:0, v2952:0, v2953:0, v2954:0, v2955:0, v2956:0, v2957:0, v2958:0, v2959:0, v2960:0, v2961:0, v2962:0, v2963:0, v2964:0, 0, 3, 7, 4, 8) :|: v2951:0 > 0 && v2935:0 < 1 + v3349:0 Filtered unneeded arguments: f_887(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, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37) -> f_887(x3, x17, x19) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_887(v2935:0, sum~cons_1~v3349:0, v2951:0) -> f_887(v2935:0, v3349:0, 1 + v2951:0) :|: v2951:0 > 0 && v2935:0 < 1 + v3349:0 && sum~cons_1~v3349:0 = 1 + v3349:0 ---------------------------------------- (23) Obligation: Rules: f_887(v2935:0, sum~cons_1~v3349:0, v2951:0) -> f_887(v2935:0, v3349:0, 1 + v2951:0) :|: v2951:0 > 0 && v2935:0 < 1 + v3349:0 && sum~cons_1~v3349:0 = 1 + v3349:0 ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f_887(v2935:0:0, sum~cons_1~v3349:0:0, v2951:0:0) -> f_887(v2935:0:0, v3349:0:0, 1 + v2951:0:0) :|: v2951:0:0 > 0 && v2935:0:0 < 1 + v3349:0:0 && sum~cons_1~v3349:0:0 = 1 + v3349:0:0 ---------------------------------------- (26) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_887 ] = -1*f_887_1 + f_887_2 The following rules are decreasing: f_887(v2935:0:0, sum~cons_1~v3349:0:0, v2951:0:0) -> f_887(v2935:0:0, v3349:0:0, 1 + v2951:0:0) :|: v2951:0:0 > 0 && v2935:0:0 < 1 + v3349:0:0 && sum~cons_1~v3349:0:0 = 1 + v3349:0:0 The following rules are bounded: f_887(v2935:0:0, sum~cons_1~v3349:0:0, v2951:0:0) -> f_887(v2935:0:0, v3349:0:0, 1 + v2951:0:0) :|: v2951:0:0 > 0 && v2935:0:0 < 1 + v3349:0:0 && sum~cons_1~v3349:0:0 = 1 + v3349:0:0 ---------------------------------------- (27) YES