/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/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, 171 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 23.0 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 77 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 222 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 45 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, 44 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 464 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 48 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 703 ms] (34) YES (35) LLVM Symbolic Execution SCC (36) SCC2IRS [SOUND, 113 ms] (37) IntTRS (38) IRS2T2 [EQUIVALENT, 0 ms] (39) T2IntSys (40) T2 [EQUIVALENT, 473 ms] (41) YES (42) LLVM Symbolic Execution SCC (43) SCC2IRS [SOUND, 69 ms] (44) IntTRS (45) IntTRSCompressionProof [EQUIVALENT, 0 ms] (46) IntTRS (47) RankingReductionPairProof [EQUIVALENT, 0 ms] (48) YES (49) LLVM Symbolic Execution SCC (50) SCC2IRS [SOUND, 42 ms] (51) IntTRS (52) IntTRSCompressionProof [EQUIVALENT, 0 ms] (53) IntTRS (54) RankingReductionPairProof [EQUIVALENT, 0 ms] (55) YES (56) LLVM Symbolic Execution SCC (57) SCC2IRS [SOUND, 37 ms] (58) IntTRS (59) IRS2T2 [EQUIVALENT, 0 ms] (60) T2IntSys (61) T2 [EQUIVALENT, 1123 ms] (62) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/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_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %cond, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %6, %4 4: br %5 5: Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn unreachable 6: ret void *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %a1 = alloca [100000 x i32], align 16 %a2 = alloca [100000 x i32], align 16 %a3 = alloca [100000 x i32], align 16 %a4 = alloca [100000 x i32], align 16 %a5 = alloca [100000 x i32], align 16 %a6 = alloca [100000 x i32], align 16 %a7 = alloca [100000 x i32], align 16 %a8 = alloca [100000 x i32], align 16 %i = alloca i32, align 4 %x = alloca i32, align 4 store 0, %1 store 0, %i br %2 2: %3 = load %i %4 = icmp slt %3 100000 br %4, %5, %16 5: %6 = load %i %7 = sext i32 %6 to i64 %8 = getelementptr %a1, 0, %7 %9 = load %8 %10 = load %i %11 = sext i32 %10 to i64 %12 = getelementptr %a2, 0, %11 store %9, %12 br %13 13: %14 = load %i %15 = add %14 1 store %15, %i br %2 16: store 0, %i br %17 17: %18 = load %i %19 = icmp slt %18 100000 br %19, %20, %31 20: %21 = load %i %22 = sext i32 %21 to i64 %23 = getelementptr %a2, 0, %22 %24 = load %23 %25 = load %i %26 = sext i32 %25 to i64 %27 = getelementptr %a3, 0, %26 store %24, %27 br %28 28: %29 = load %i %30 = add %29 1 store %30, %i br %17 31: store 0, %i br %32 32: %33 = load %i %34 = icmp slt %33 100000 br %34, %35, %46 35: %36 = load %i %37 = sext i32 %36 to i64 %38 = getelementptr %a3, 0, %37 %39 = load %38 %40 = load %i %41 = sext i32 %40 to i64 %42 = getelementptr %a4, 0, %41 store %39, %42 br %43 43: %44 = load %i %45 = add %44 1 store %45, %i br %32 46: store 0, %i br %47 47: %48 = load %i %49 = icmp slt %48 100000 br %49, %50, %61 50: %51 = load %i %52 = sext i32 %51 to i64 %53 = getelementptr %a4, 0, %52 %54 = load %53 %55 = load %i %56 = sext i32 %55 to i64 %57 = getelementptr %a5, 0, %56 store %54, %57 br %58 58: %59 = load %i %60 = add %59 1 store %60, %i br %47 61: store 0, %i br %62 62: %63 = load %i %64 = icmp slt %63 100000 br %64, %65, %76 65: %66 = load %i %67 = sext i32 %66 to i64 %68 = getelementptr %a5, 0, %67 %69 = load %68 %70 = load %i %71 = sext i32 %70 to i64 %72 = getelementptr %a6, 0, %71 store %69, %72 br %73 73: %74 = load %i %75 = add %74 1 store %75, %i br %62 76: store 0, %i br %77 77: %78 = load %i %79 = icmp slt %78 100000 br %79, %80, %91 80: %81 = load %i %82 = sext i32 %81 to i64 %83 = getelementptr %a6, 0, %82 %84 = load %83 %85 = load %i %86 = sext i32 %85 to i64 %87 = getelementptr %a7, 0, %86 store %84, %87 br %88 88: %89 = load %i %90 = add %89 1 store %90, %i br %77 91: store 0, %i br %92 92: %93 = load %i %94 = icmp slt %93 100000 br %94, %95, %106 95: %96 = load %i %97 = sext i32 %96 to i64 %98 = getelementptr %a7, 0, %97 %99 = load %98 %100 = load %i %101 = sext i32 %100 to i64 %102 = getelementptr %a8, 0, %101 store %99, %102 br %103 103: %104 = load %i %105 = add %104 1 store %105, %i br %92 106: store 0, %x br %107 107: %108 = load %x %109 = icmp slt %108 100000 br %109, %110, %124 110: %111 = load %x %112 = sext i32 %111 to i64 %113 = getelementptr %a1, 0, %112 %114 = load %113 %115 = load %x %116 = sext i32 %115 to i64 %117 = getelementptr %a8, 0, %116 %118 = load %117 %119 = icmp eq %114 %118 %120 = zext i1 %119 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %120) br %121 121: %122 = load %x %123 = add %122 1 store %123, %x br %107 124: ret 0 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 8 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 28 rulesP rules: f_1834(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 4, 400000) -> f_1835(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) :|: v4644 < 100000 && v4639 <= 99998 f_1835(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) -> f_1837(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1837(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) -> f_1839(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) :|: TRUE f_1839(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) -> f_1841(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1841(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) -> f_1842(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4641, v4642, v4639, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1842(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4641, v4642, v4639, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 99998, 4, 400000) -> f_1843(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4642, v4639, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) :|: v4692 = v4605 + 4 * v4644 && 5 <= v4692 f_1843(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4642, v4639, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) -> f_1844(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4639, v4643, v4642, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1844(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4639, v4643, v4642, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) -> f_1845(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4639, v4643, v4642, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1845(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4639, v4643, v4642, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) -> f_1846(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4643, v4642, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1846(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4643, v4642, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, 3, 399999, 4, 99998, 400000, 5) -> f_1847(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4695, v4642, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4643, 3, 399999, 4, 99998, 400000, 5) :|: v4695 = v4612 + 4 * v4644 && 5 <= v4695 f_1847(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4695, v4642, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1848(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4695, v4696, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1848(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4693, v4695, v4696, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1849(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) :|: v4693 = v4696 f_1849(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1851(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1851(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1853(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1853(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1855(1, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1855(1, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) -> f_1857(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) :|: 1 <= v4698 && v4699 = 3 + v4698 && 4 <= v4699 f_1857(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) -> f_1859(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1859(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) -> f_1861(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1861(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) -> f_1863(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1863(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) -> f_1865(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1865(1, v4698, v4604, v4645, v4605, v4646, v4606, v4647, v4607, v4648, v4608, v4649, v4609, v4650, v4610, v4651, v4611, v4652, v4612, v4653, v4613, v4654, v4614, v4655, v4699, 0, v4656, 100000, v4644, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4641, v4642, v4643, v4692, v4696, v4695, 99999, v4639, 3, 399999, 4, 99998, 400000, 5) -> f_1867(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1867(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1869(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1869(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4639, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 99998, 400000, 5) -> f_1871(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_1871(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5) -> f_1872(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5, 2) :|: v4702 = 1 + v4644 && 2 <= v4702 && v4702 <= 100000 f_1872(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5, 2) -> f_1873(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1873(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5, 2) -> f_1874(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1874(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, v4641, v4642, v4643, 3, 399999, 4, 400000, 5, 2) -> f_1833(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4692, v4696, v4695, v4702, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 4, 400000) :|: TRUE f_1833(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4639, 1, v4641, v4642, v4643, v4644, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 4, 400000) -> f_1834(v4604, v4605, v4606, v4607, v4608, v4609, v4610, v4611, v4612, v4613, v4614, 100000, 0, 99999, v4618, v4619, v4620, v4621, v4622, v4623, v4624, v4625, v4626, v4627, v4628, v4629, v4630, v4631, v4632, v4633, v4634, v4635, v4636, v4637, v4638, v4644, 1, v4639, v4641, v4642, v4643, v4645, v4646, v4647, v4648, v4649, v4650, v4651, v4652, v4653, v4654, v4655, v4656, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1834(v4604:0, v4605:0, v4606:0, v4607:0, v4608:0, v4609:0, v4610:0, v4611:0, v4612:0, v4613:0, v4614:0, 100000, 0, 99999, v4618:0, v4619:0, v4620:0, v4621:0, v4622:0, v4623:0, v4624:0, v4625:0, v4626:0, v4627:0, v4628:0, v4629:0, v4630:0, v4631:0, v4632:0, v4633:0, v4634:0, v4635:0, v4636:0, v4637:0, v4638:0, v4644:0, 1, v4639:0, v4641:0, v4642:0, v4643:0, v4645:0, v4646:0, v4647:0, v4648:0, v4649:0, v4650:0, v4651:0, v4652:0, v4653:0, v4654:0, v4655:0, v4656:0, 3, 399999, 4, 400000) -> f_1834(v4604:0, v4605:0, v4606:0, v4607:0, v4608:0, v4609:0, v4610:0, v4611:0, v4612:0, v4613:0, v4614:0, 100000, 0, 99999, v4618:0, v4619:0, v4620:0, v4621:0, v4622:0, v4623:0, v4624:0, v4625:0, v4626:0, v4627:0, v4628:0, v4629:0, v4630:0, v4631:0, v4632:0, v4633:0, v4634:0, v4635:0, v4636:0, v4637:0, v4638:0, 1 + v4644:0, 1, v4644:0, v4605:0 + 4 * v4644:0, v4693:0, v4612:0 + 4 * v4644:0, v4645:0, v4646:0, v4647:0, v4648:0, v4649:0, v4650:0, v4651:0, v4652:0, v4653:0, v4654:0, v4655:0, v4656:0, 3, 399999, 4, 400000) :|: v4639:0 < 99999 && v4644:0 < 100000 && v4605:0 + 4 * v4644:0 > 4 && v4612:0 + 4 * v4644:0 > 4 && v4698:0 > 0 && v4644:0 > 0 Filtered unneeded arguments: f_1834(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, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57) -> f_1834(x2, x9, x36, x38) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1834(v4605:0, v4612:0, v4644:0, v4639:0) -> f_1834(v4605:0, v4612:0, 1 + v4644:0, v4644:0) :|: v4644:0 < 100000 && v4639:0 < 99999 && v4605:0 + 4 * v4644:0 > 4 && v4644:0 > 0 && v4612:0 + 4 * v4644:0 > 4 ---------------------------------------- (9) Obligation: Rules: f_1834(v4605:0, v4612:0, v4644:0, v4639:0) -> f_1834(v4605:0, v4612:0, 1 + v4644:0, v4644:0) :|: v4644:0 < 100000 && v4639:0 < 99999 && v4605:0 + 4 * v4644:0 > 4 && v4644:0 > 0 && v4612:0 + 4 * v4644:0 > 4 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1834_4,1) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; 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: 1-2*x2 RF for loc. 6: -2*x2 Bound for (chained) transitions 4: -199998 - Rank function 2: RF for loc. 5: 1-2*x2 RF for loc. 6: -2*x2 Bound for (chained) transitions 3: -199998 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_1589(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 4, 400000) -> f_1590(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) :|: v3811 < 100000 && v3806 <= 99998 f_1590(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) -> f_1592(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1592(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) -> f_1594(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) :|: TRUE f_1594(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) -> f_1596(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1596(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) -> f_1598(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3808, v3809, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1598(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3808, v3809, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 99998, 4, 400000) -> f_1600(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3809, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, 3, 399999, 4, 99998, 400000, 5) :|: v3856 = v3781 + 4 * v3811 && 5 <= v3856 f_1600(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3809, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, 3, 399999, 4, 99998, 400000, 5) -> f_1602(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1602(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) -> f_1604(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1604(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3806, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) -> f_1606(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3810, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1606(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3810, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) -> f_1608(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, v3810, 3, 399999, 4, 99998, 400000, 5) :|: v3859 = v3782 + 4 * v3811 && 5 <= v3859 f_1608(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, v3810, 3, 399999, 4, 99998, 400000, 5) -> f_1610(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1610(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) -> f_1612(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1612(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3806, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 99998, 400000, 5) -> f_1614(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_1614(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5) -> f_1616(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5, 2) :|: v3861 = 1 + v3811 && 2 <= v3861 && v3861 <= 100000 f_1616(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5, 2) -> f_1618(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1618(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5, 2) -> f_1620(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1620(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, v3808, v3809, 3, 399999, 4, 400000, 5, 2) -> f_1588(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3856, v3857, v3859, v3861, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 4, 400000) :|: TRUE f_1588(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3806, 1, v3808, v3809, v3810, v3811, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 4, 400000) -> f_1589(v3774, v3775, v3776, v3777, v3778, v3779, v3780, v3781, v3782, v3783, v3784, 100000, 0, 99999, v3788, v3789, v3790, v3791, v3792, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, v3801, v3802, v3803, v3804, v3805, v3811, 1, v3806, v3808, v3809, v3810, v3812, v3813, v3814, v3815, v3816, v3817, v3818, v3819, v3820, v3821, v3822, v3823, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1589(v3774:0, v3775:0, v3776:0, v3777:0, v3778:0, v3779:0, v3780:0, v3781:0, v3782:0, v3783:0, v3784:0, 100000, 0, 99999, v3788:0, v3789:0, v3790:0, v3791:0, v3792:0, v3793:0, v3794:0, v3795:0, v3796:0, v3797:0, v3798:0, v3799:0, v3800:0, v3801:0, v3802:0, v3803:0, v3804:0, v3805:0, v3811:0, 1, v3806:0, v3808:0, v3809:0, v3810:0, v3812:0, v3813:0, v3814:0, v3815:0, v3816:0, v3817:0, v3818:0, v3819:0, v3820:0, v3821:0, v3822:0, v3823:0, 3, 399999, 4, 400000) -> f_1589(v3774:0, v3775:0, v3776:0, v3777:0, v3778:0, v3779:0, v3780:0, v3781:0, v3782:0, v3783:0, v3784:0, 100000, 0, 99999, v3788:0, v3789:0, v3790:0, v3791:0, v3792:0, v3793:0, v3794:0, v3795:0, v3796:0, v3797:0, v3798:0, v3799:0, v3800:0, v3801:0, v3802:0, v3803:0, v3804:0, v3805:0, 1 + v3811:0, 1, v3811:0, v3781:0 + 4 * v3811:0, v3857:0, v3782:0 + 4 * v3811:0, v3812:0, v3813:0, v3814:0, v3815:0, v3816:0, v3817:0, v3818:0, v3819:0, v3820:0, v3821:0, v3822:0, v3823:0, 3, 399999, 4, 400000) :|: v3806:0 < 99999 && v3811:0 < 100000 && v3781:0 + 4 * v3811:0 > 4 && v3782:0 + 4 * v3811:0 > 4 && v3811:0 > 0 Filtered unneeded arguments: f_1589(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, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54) -> f_1589(x8, x9, x33, x35) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1589(v3781:0, v3782:0, v3811:0, v3806:0) -> f_1589(v3781:0, v3782:0, 1 + v3811:0, v3811:0) :|: v3811:0 < 100000 && v3806:0 < 99999 && v3781:0 + 4 * v3811:0 > 4 && v3811:0 > 0 && v3782:0 + 4 * v3811:0 > 4 ---------------------------------------- (16) Obligation: Rules: f_1589(v3781:0, v3782:0, v3811:0, v3806:0) -> f_1589(v3781:0, v3782:0, 1 + v3811:0, v3811:0) :|: v3811:0 < 100000 && v3806:0 < 99999 && v3781:0 + 4 * v3811:0 > 4 && v3811:0 > 0 && v3782:0 + 4 * v3811:0 > 4 ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f_1589(v3781:0:0, v3782:0:0, v3811:0:0, v3806:0:0) -> f_1589(v3781:0:0, v3782:0:0, 1 + v3811:0:0, v3811:0:0) :|: v3811:0:0 > 0 && v3782:0:0 + 4 * v3811:0:0 > 4 && v3781:0:0 + 4 * v3811:0:0 > 4 && v3806:0:0 < 99999 && v3811:0:0 < 100000 ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_1589 ] = -1*f_1589_3 The following rules are decreasing: f_1589(v3781:0:0, v3782:0:0, v3811:0:0, v3806:0:0) -> f_1589(v3781:0:0, v3782:0:0, 1 + v3811:0:0, v3811:0:0) :|: v3811:0:0 > 0 && v3782:0:0 + 4 * v3811:0:0 > 4 && v3781:0:0 + 4 * v3811:0:0 > 4 && v3806:0:0 < 99999 && v3811:0:0 < 100000 The following rules are bounded: f_1589(v3781:0:0, v3782:0:0, v3811:0:0, v3806:0:0) -> f_1589(v3781:0:0, v3782:0:0, 1 + v3811:0:0, v3811:0:0) :|: v3811:0:0 > 0 && v3782:0:0 + 4 * v3811:0:0 > 4 && v3781:0:0 + 4 * v3811:0:0 > 4 && v3806:0:0 < 99999 && v3811:0:0 < 100000 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_1434(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 4, 400000) -> f_1435(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) :|: v3061 < 100000 && v3056 <= 99998 f_1435(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) -> f_1437(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1437(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) -> f_1439(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) :|: TRUE f_1439(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) -> f_1441(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1441(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) -> f_1443(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3058, v3059, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1443(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3058, v3059, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 99998, 4, 400000) -> f_1445(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3059, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, 3, 399999, 4, 99998, 400000, 5) :|: v3103 = v3033 + 4 * v3061 && 5 <= v3103 f_1445(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3059, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, 3, 399999, 4, 99998, 400000, 5) -> f_1447(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1447(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) -> f_1449(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1449(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3056, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) -> f_1451(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3060, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1451(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3060, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) -> f_1453(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, v3060, 3, 399999, 4, 99998, 400000, 5) :|: v3106 = v3034 + 4 * v3061 && 5 <= v3106 f_1453(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, v3060, 3, 399999, 4, 99998, 400000, 5) -> f_1455(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1455(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) -> f_1457(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1457(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3056, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 99998, 400000, 5) -> f_1459(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_1459(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5) -> f_1461(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5, 2) :|: v3108 = 1 + v3061 && 2 <= v3108 && v3108 <= 100000 f_1461(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5, 2) -> f_1463(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1463(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5, 2) -> f_1465(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1465(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, v3058, v3059, 3, 399999, 4, 400000, 5, 2) -> f_1433(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3103, v3104, v3106, v3108, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 4, 400000) :|: TRUE f_1433(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3056, 1, v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 4, 400000) -> f_1434(v3027, v3028, v3029, v3030, v3031, v3032, v3033, v3034, v3035, v3036, v3037, 100000, 0, 99999, v3041, v3042, v3043, v3044, v3045, v3046, v3047, v3048, v3049, v3050, v3051, v3052, v3053, v3054, v3055, v3061, 1, v3056, v3058, v3059, v3060, v3062, v3063, v3064, v3065, v3066, v3067, v3068, v3069, v3070, v3071, v3072, v3073, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1434(v3027:0, v3028:0, v3029:0, v3030:0, v3031:0, v3032:0, v3033:0, v3034:0, v3035:0, v3036:0, v3037:0, 100000, 0, 99999, v3041:0, v3042:0, v3043:0, v3044:0, v3045:0, v3046:0, v3047:0, v3048:0, v3049:0, v3050:0, v3051:0, v3052:0, v3053:0, v3054:0, v3055:0, v3061:0, 1, v3056:0, v3058:0, v3059:0, v3060:0, v3062:0, v3063:0, v3064:0, v3065:0, v3066:0, v3067:0, v3068:0, v3069:0, v3070:0, v3071:0, v3072:0, v3073:0, 3, 399999, 4, 400000) -> f_1434(v3027:0, v3028:0, v3029:0, v3030:0, v3031:0, v3032:0, v3033:0, v3034:0, v3035:0, v3036:0, v3037:0, 100000, 0, 99999, v3041:0, v3042:0, v3043:0, v3044:0, v3045:0, v3046:0, v3047:0, v3048:0, v3049:0, v3050:0, v3051:0, v3052:0, v3053:0, v3054:0, v3055:0, 1 + v3061:0, 1, v3061:0, v3033:0 + 4 * v3061:0, v3104:0, v3034:0 + 4 * v3061:0, v3062:0, v3063:0, v3064:0, v3065:0, v3066:0, v3067:0, v3068:0, v3069:0, v3070:0, v3071:0, v3072:0, v3073:0, 3, 399999, 4, 400000) :|: v3056:0 < 99999 && v3061:0 < 100000 && v3033:0 + 4 * v3061:0 > 4 && v3034:0 + 4 * v3061:0 > 4 && v3061:0 > 0 Filtered unneeded arguments: f_1434(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, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51) -> f_1434(x7, x8, x30, x32) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1434(v3033:0, v3034:0, v3061:0, v3056:0) -> f_1434(v3033:0, v3034:0, 1 + v3061:0, v3061:0) :|: v3061:0 < 100000 && v3056:0 < 99999 && v3033:0 + 4 * v3061:0 > 4 && v3061:0 > 0 && v3034:0 + 4 * v3061:0 > 4 ---------------------------------------- (23) Obligation: Rules: f_1434(v3033:0, v3034:0, v3061:0, v3056:0) -> f_1434(v3033:0, v3034:0, 1 + v3061:0, v3061:0) :|: v3061:0 < 100000 && v3056:0 < 99999 && v3033:0 + 4 * v3061:0 > 4 && v3061:0 > 0 && v3034:0 + 4 * v3061:0 > 4 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1434_4,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; TO: 1; ---------------------------------------- (26) 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 4: -199998 - Rank function 2: RF for loc. 5: 1-2*x2 RF for loc. 6: -2*x2 Bound for (chained) transitions 3: -199998 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_1279(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 4, 400000) -> f_1280(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) :|: v2368 < 100000 && v2363 <= 99998 f_1280(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) -> f_1282(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1282(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) -> f_1284(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) :|: TRUE f_1284(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) -> f_1286(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1286(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) -> f_1288(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2365, v2366, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1288(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2365, v2366, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 99998, 4, 400000) -> f_1290(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2366, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, 3, 399999, 4, 99998, 400000, 5) :|: v2407 = v2342 + 4 * v2368 && 5 <= v2407 f_1290(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2366, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, 3, 399999, 4, 99998, 400000, 5) -> f_1292(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1292(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) -> f_1294(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1294(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2363, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) -> f_1296(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2367, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1296(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2367, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) -> f_1298(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, v2367, 3, 399999, 4, 99998, 400000, 5) :|: v2410 = v2343 + 4 * v2368 && 5 <= v2410 f_1298(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, v2367, 3, 399999, 4, 99998, 400000, 5) -> f_1300(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1300(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) -> f_1302(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1302(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2363, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 99998, 400000, 5) -> f_1304(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_1304(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5) -> f_1306(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5, 2) :|: v2412 = 1 + v2368 && 2 <= v2412 && v2412 <= 100000 f_1306(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5, 2) -> f_1308(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1308(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5, 2) -> f_1310(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1310(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, v2365, v2366, 3, 399999, 4, 400000, 5, 2) -> f_1278(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2407, v2408, v2410, v2412, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 4, 400000) :|: TRUE f_1278(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2363, 1, v2365, v2366, v2367, v2368, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 4, 400000) -> f_1279(v2337, v2338, v2339, v2340, v2341, v2342, v2343, v2344, v2345, v2346, v2347, 100000, 0, 99999, v2351, v2352, v2353, v2354, v2355, v2356, v2357, v2358, v2359, v2360, v2361, v2362, v2368, 1, v2363, v2365, v2366, v2367, v2369, v2370, v2371, v2372, v2373, v2374, v2375, v2376, v2377, v2378, v2379, v2380, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1279(v2337:0, v2338:0, v2339:0, v2340:0, v2341:0, v2342:0, v2343:0, v2344:0, v2345:0, v2346:0, v2347:0, 100000, 0, 99999, v2351:0, v2352:0, v2353:0, v2354:0, v2355:0, v2356:0, v2357:0, v2358:0, v2359:0, v2360:0, v2361:0, v2362:0, v2368:0, 1, v2363:0, v2365:0, v2366:0, v2367:0, v2369:0, v2370:0, v2371:0, v2372:0, v2373:0, v2374:0, v2375:0, v2376:0, v2377:0, v2378:0, v2379:0, v2380:0, 3, 399999, 4, 400000) -> f_1279(v2337:0, v2338:0, v2339:0, v2340:0, v2341:0, v2342:0, v2343:0, v2344:0, v2345:0, v2346:0, v2347:0, 100000, 0, 99999, v2351:0, v2352:0, v2353:0, v2354:0, v2355:0, v2356:0, v2357:0, v2358:0, v2359:0, v2360:0, v2361:0, v2362:0, 1 + v2368:0, 1, v2368:0, v2342:0 + 4 * v2368:0, v2408:0, v2343:0 + 4 * v2368:0, v2369:0, v2370:0, v2371:0, v2372:0, v2373:0, v2374:0, v2375:0, v2376:0, v2377:0, v2378:0, v2379:0, v2380:0, 3, 399999, 4, 400000) :|: v2363:0 < 99999 && v2368:0 < 100000 && v2342:0 + 4 * v2368:0 > 4 && v2343:0 + 4 * v2368:0 > 4 && v2368:0 > 0 Filtered unneeded arguments: f_1279(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, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48) -> f_1279(x6, x7, x27, x29) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1279(v2342:0, v2343:0, v2368:0, v2363:0) -> f_1279(v2342:0, v2343:0, 1 + v2368:0, v2368:0) :|: v2368:0 < 100000 && v2363:0 < 99999 && v2342:0 + 4 * v2368:0 > 4 && v2368:0 > 0 && v2343:0 + 4 * v2368:0 > 4 ---------------------------------------- (30) Obligation: Rules: f_1279(v2342:0, v2343:0, v2368:0, v2363:0) -> f_1279(v2342:0, v2343:0, 1 + v2368:0, v2368:0) :|: v2368:0 < 100000 && v2363:0 < 99999 && v2342:0 + 4 * v2368:0 > 4 && v2368:0 > 0 && v2343:0 + 4 * v2368:0 > 4 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1279_4,1) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; TO: 1; ---------------------------------------- (33) 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 4: -199998 - Rank function 2: RF for loc. 5: 1-2*x2 RF for loc. 6: -2*x2 Bound for (chained) transitions 3: -199998 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: SCC ---------------------------------------- (36) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_1124(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 4, 400000) -> f_1125(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) :|: v1732 < 100000 && v1727 <= 99998 f_1125(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) -> f_1127(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1127(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) -> f_1129(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) :|: TRUE f_1129(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) -> f_1131(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1131(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) -> f_1133(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1729, v1730, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_1133(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1729, v1730, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 99998, 4, 400000) -> f_1135(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1730, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, 3, 399999, 4, 99998, 400000, 5) :|: v1768 = v1708 + 4 * v1732 && 5 <= v1768 f_1135(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1730, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, 3, 399999, 4, 99998, 400000, 5) -> f_1137(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1137(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) -> f_1139(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1139(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1727, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) -> f_1141(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1731, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_1141(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1731, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) -> f_1143(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, v1731, 3, 399999, 4, 99998, 400000, 5) :|: v1771 = v1709 + 4 * v1732 && 5 <= v1771 f_1143(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, v1731, 3, 399999, 4, 99998, 400000, 5) -> f_1145(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1145(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) -> f_1147(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_1147(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1727, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 99998, 400000, 5) -> f_1149(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_1149(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5) -> f_1151(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5, 2) :|: v1773 = 1 + v1732 && 2 <= v1773 && v1773 <= 100000 f_1151(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5, 2) -> f_1153(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1153(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5, 2) -> f_1155(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1155(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, v1729, v1730, 3, 399999, 4, 400000, 5, 2) -> f_1123(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1768, v1769, v1771, v1773, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 4, 400000) :|: TRUE f_1123(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, 1, v1729, v1730, v1731, v1732, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 4, 400000) -> f_1124(v1704, v1705, v1706, v1707, v1708, v1709, v1710, v1711, v1712, v1713, v1714, 100000, 0, 99999, v1718, v1719, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1732, 1, v1727, v1729, v1730, v1731, v1733, v1734, v1735, v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, v1744, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1124(v1704:0, v1705:0, v1706:0, v1707:0, v1708:0, v1709:0, v1710:0, v1711:0, v1712:0, v1713:0, v1714:0, 100000, 0, 99999, v1718:0, v1719:0, v1720:0, v1721:0, v1722:0, v1723:0, v1724:0, v1725:0, v1726:0, v1732:0, 1, v1727:0, v1729:0, v1730:0, v1731:0, v1733:0, v1734:0, v1735:0, v1736:0, v1737:0, v1738:0, v1739:0, v1740:0, v1741:0, v1742:0, v1743:0, v1744:0, 3, 399999, 4, 400000) -> f_1124(v1704:0, v1705:0, v1706:0, v1707:0, v1708:0, v1709:0, v1710:0, v1711:0, v1712:0, v1713:0, v1714:0, 100000, 0, 99999, v1718:0, v1719:0, v1720:0, v1721:0, v1722:0, v1723:0, v1724:0, v1725:0, v1726:0, 1 + v1732:0, 1, v1732:0, v1708:0 + 4 * v1732:0, v1769:0, v1709:0 + 4 * v1732:0, v1733:0, v1734:0, v1735:0, v1736:0, v1737:0, v1738:0, v1739:0, v1740:0, v1741:0, v1742:0, v1743:0, v1744:0, 3, 399999, 4, 400000) :|: v1727:0 < 99999 && v1732:0 < 100000 && v1708:0 + 4 * v1732:0 > 4 && v1709:0 + 4 * v1732:0 > 4 && v1732:0 > 0 Filtered unneeded arguments: f_1124(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, x39, x40, x41, x42, x43, x44, x45) -> f_1124(x5, x6, x24, x26) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1124(v1708:0, v1709:0, v1732:0, v1727:0) -> f_1124(v1708:0, v1709:0, 1 + v1732:0, v1732:0) :|: v1732:0 < 100000 && v1727:0 < 99999 && v1708:0 + 4 * v1732:0 > 4 && v1732:0 > 0 && v1709:0 + 4 * v1732:0 > 4 ---------------------------------------- (37) Obligation: Rules: f_1124(v1708:0, v1709:0, v1732:0, v1727:0) -> f_1124(v1708:0, v1709:0, 1 + v1732:0, v1732:0) :|: v1732:0 < 100000 && v1727:0 < 99999 && v1708:0 + 4 * v1732:0 > 4 && v1732:0 > 0 && v1709:0 + 4 * v1732:0 > 4 ---------------------------------------- (38) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1124_4,1) ---------------------------------------- (39) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; 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 4: -199998 - Rank function 2: RF for loc. 5: 1-2*x2 RF for loc. 6: -2*x2 Bound for (chained) transitions 3: -199998 - Rank function 3: 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 18 rulesP rules: f_969(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 4, 400000) -> f_970(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) :|: v1153 < 100000 && v1148 <= 99998 f_970(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) -> f_972(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_972(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) -> f_974(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) :|: TRUE f_974(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) -> f_976(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_976(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) -> f_978(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1150, v1151, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_978(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1150, v1151, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 99998, 4, 400000) -> f_980(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1151, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, 3, 399999, 4, 99998, 400000, 5) :|: v1186 = v1131 + 4 * v1153 && 5 <= v1186 f_980(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1151, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, 3, 399999, 4, 99998, 400000, 5) -> f_982(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_982(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) -> f_984(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_984(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1148, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) -> f_986(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1152, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_986(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1152, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) -> f_988(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, v1152, 3, 399999, 4, 99998, 400000, 5) :|: v1189 = v1132 + 4 * v1153 && 5 <= v1189 f_988(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, v1152, 3, 399999, 4, 99998, 400000, 5) -> f_990(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_990(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) -> f_992(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_992(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1148, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 99998, 400000, 5) -> f_994(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_994(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5) -> f_996(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5, 2) :|: v1191 = 1 + v1153 && 2 <= v1191 && v1191 <= 100000 f_996(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5, 2) -> f_998(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_998(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5, 2) -> f_1000(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_1000(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, v1150, v1151, 3, 399999, 4, 400000, 5, 2) -> f_968(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1186, v1187, v1189, v1191, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 4, 400000) :|: TRUE f_968(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 1, v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 4, 400000) -> f_969(v1128, v1129, v1130, v1131, v1132, v1133, v1134, v1135, v1136, v1137, v1138, 100000, 0, 99999, v1142, v1143, v1144, v1145, v1146, v1147, v1153, 1, v1148, v1150, v1151, v1152, v1154, v1155, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, v1164, v1165, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_969(v1128:0, v1129:0, v1130:0, v1131:0, v1132:0, v1133:0, v1134:0, v1135:0, v1136:0, v1137:0, v1138:0, 100000, 0, 99999, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1153:0, 1, v1148:0, v1150:0, v1151:0, v1152:0, v1154:0, v1155:0, v1156:0, v1157:0, v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, v1164:0, v1165:0, 3, 399999, 4, 400000) -> f_969(v1128:0, v1129:0, v1130:0, v1131:0, v1132:0, v1133:0, v1134:0, v1135:0, v1136:0, v1137:0, v1138:0, 100000, 0, 99999, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, 1 + v1153:0, 1, v1153:0, v1131:0 + 4 * v1153:0, v1187:0, v1132:0 + 4 * v1153:0, v1154:0, v1155:0, v1156:0, v1157:0, v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, v1164:0, v1165:0, 3, 399999, 4, 400000) :|: v1148:0 < 99999 && v1153:0 < 100000 && v1131:0 + 4 * v1153:0 > 4 && v1132:0 + 4 * v1153:0 > 4 && v1153:0 > 0 Filtered unneeded arguments: f_969(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, x39, x40, x41, x42) -> f_969(x4, x5, x21, x23) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_969(v1131:0, v1132:0, v1153:0, v1148:0) -> f_969(v1131:0, v1132:0, 1 + v1153:0, v1153:0) :|: v1153:0 < 100000 && v1148:0 < 99999 && v1131:0 + 4 * v1153:0 > 4 && v1153:0 > 0 && v1132:0 + 4 * v1153:0 > 4 ---------------------------------------- (44) Obligation: Rules: f_969(v1131:0, v1132:0, v1153:0, v1148:0) -> f_969(v1131:0, v1132:0, 1 + v1153:0, v1153:0) :|: v1153:0 < 100000 && v1148:0 < 99999 && v1131:0 + 4 * v1153:0 > 4 && v1153:0 > 0 && v1132:0 + 4 * v1153:0 > 4 ---------------------------------------- (45) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (46) Obligation: Rules: f_969(v1131:0:0, v1132:0:0, v1153:0:0, v1148:0:0) -> f_969(v1131:0:0, v1132:0:0, 1 + v1153:0:0, v1153:0:0) :|: v1153:0:0 > 0 && v1132:0:0 + 4 * v1153:0:0 > 4 && v1131:0:0 + 4 * v1153:0:0 > 4 && v1148:0:0 < 99999 && v1153:0:0 < 100000 ---------------------------------------- (47) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_969 ] = -1*f_969_3 The following rules are decreasing: f_969(v1131:0:0, v1132:0:0, v1153:0:0, v1148:0:0) -> f_969(v1131:0:0, v1132:0:0, 1 + v1153:0:0, v1153:0:0) :|: v1153:0:0 > 0 && v1132:0:0 + 4 * v1153:0:0 > 4 && v1131:0:0 + 4 * v1153:0:0 > 4 && v1148:0:0 < 99999 && v1153:0:0 < 100000 The following rules are bounded: f_969(v1131:0:0, v1132:0:0, v1153:0:0, v1148:0:0) -> f_969(v1131:0:0, v1132:0:0, 1 + v1153:0:0, v1153:0:0) :|: v1153:0:0 > 0 && v1132:0:0 + 4 * v1153:0:0 > 4 && v1131:0:0 + 4 * v1153:0:0 > 4 && v1148:0:0 < 99999 && v1153:0:0 < 100000 ---------------------------------------- (48) YES ---------------------------------------- (49) Obligation: SCC ---------------------------------------- (50) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_814(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 4, 400000) -> f_815(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) :|: v631 < 100000 && v626 <= 99998 f_815(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) -> f_817(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_817(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) -> f_819(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) :|: TRUE f_819(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) -> f_821(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_821(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) -> f_823(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v628, v629, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) :|: 0 = 0 f_823(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v628, v629, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 99998, 4, 400000) -> f_825(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v629, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, 3, 399999, 4, 99998, 400000, 5) :|: v661 = v611 + 4 * v631 && 5 <= v661 f_825(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v629, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, 3, 399999, 4, 99998, 400000, 5) -> f_827(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_827(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) -> f_829(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_829(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v626, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) -> f_831(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v630, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 f_831(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v630, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) -> f_833(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, v630, 3, 399999, 4, 99998, 400000, 5) :|: v664 = v612 + 4 * v631 && 5 <= v664 f_833(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, v630, 3, 399999, 4, 99998, 400000, 5) -> f_835(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_835(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) -> f_837(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) :|: TRUE f_837(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v626, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 99998, 400000, 5) -> f_839(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5) :|: 0 = 0 f_839(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5) -> f_841(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5, 2) :|: v666 = 1 + v631 && 2 <= v666 && v666 <= 100000 f_841(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5, 2) -> f_843(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_843(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5, 2) -> f_845(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5, 2) :|: TRUE f_845(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, v628, v629, 3, 399999, 4, 400000, 5, 2) -> f_813(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v661, v662, v664, v666, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 4, 400000) :|: TRUE f_813(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v626, 1, v628, v629, v630, v631, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 4, 400000) -> f_814(v609, v610, v611, v612, v613, v614, v615, v616, v617, v618, v619, 100000, 0, 99999, v623, v624, v625, v631, 1, v626, v628, v629, v630, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, v642, v643, 3, 399999, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_814(v609:0, v610:0, v611:0, v612:0, v613:0, v614:0, v615:0, v616:0, v617:0, v618:0, v619:0, 100000, 0, 99999, v623:0, v624:0, v625:0, v631:0, 1, v626:0, v628:0, v629:0, v630:0, v632:0, v633:0, v634:0, v635:0, v636:0, v637:0, v638:0, v639:0, v640:0, v641:0, v642:0, v643:0, 3, 399999, 4, 400000) -> f_814(v609:0, v610:0, v611:0, v612:0, v613:0, v614:0, v615:0, v616:0, v617:0, v618:0, v619:0, 100000, 0, 99999, v623:0, v624:0, v625:0, 1 + v631:0, 1, v631:0, v611:0 + 4 * v631:0, v662:0, v612:0 + 4 * v631:0, v632:0, v633:0, v634:0, v635:0, v636:0, v637:0, v638:0, v639:0, v640:0, v641:0, v642:0, v643:0, 3, 399999, 4, 400000) :|: v626:0 < 99999 && v631:0 < 100000 && v611:0 + 4 * v631:0 > 4 && v612:0 + 4 * v631:0 > 4 && v631:0 > 0 Filtered unneeded arguments: f_814(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, x39) -> f_814(x3, x4, x18, x20) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_814(v611:0, v612:0, v631:0, v626:0) -> f_814(v611:0, v612:0, 1 + v631:0, v631:0) :|: v631:0 < 100000 && v626:0 < 99999 && v611:0 + 4 * v631:0 > 4 && v631:0 > 0 && v612:0 + 4 * v631:0 > 4 ---------------------------------------- (51) Obligation: Rules: f_814(v611:0, v612:0, v631:0, v626:0) -> f_814(v611:0, v612:0, 1 + v631:0, v631:0) :|: v631:0 < 100000 && v626:0 < 99999 && v611:0 + 4 * v631:0 > 4 && v631:0 > 0 && v612:0 + 4 * v631:0 > 4 ---------------------------------------- (52) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (53) Obligation: Rules: f_814(v611:0:0, v612:0:0, v631:0:0, v626:0:0) -> f_814(v611:0:0, v612:0:0, 1 + v631:0:0, v631:0:0) :|: v631:0:0 > 0 && v612:0:0 + 4 * v631:0:0 > 4 && v611:0:0 + 4 * v631:0:0 > 4 && v626:0:0 < 99999 && v631:0:0 < 100000 ---------------------------------------- (54) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_814 ] = -1*f_814_3 The following rules are decreasing: f_814(v611:0:0, v612:0:0, v631:0:0, v626:0:0) -> f_814(v611:0:0, v612:0:0, 1 + v631:0:0, v631:0:0) :|: v631:0:0 > 0 && v612:0:0 + 4 * v631:0:0 > 4 && v611:0:0 + 4 * v631:0:0 > 4 && v626:0:0 < 99999 && v631:0:0 < 100000 The following rules are bounded: f_814(v611:0:0, v612:0:0, v631:0:0, v626:0:0) -> f_814(v611:0:0, v612:0:0, 1 + v631:0:0, v631:0:0) :|: v631:0:0 > 0 && v612:0:0 + 4 * v631:0:0 > 4 && v611:0:0 + 4 * v631:0:0 > 4 && v626:0:0 < 99999 && v631:0:0 < 100000 ---------------------------------------- (55) YES ---------------------------------------- (56) Obligation: SCC ---------------------------------------- (57) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_659(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99999, 100000, 4, 400000) -> f_660(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) :|: v195 < 100000 && v190 <= 99998 f_660(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) -> f_662(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 f_662(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) -> f_664(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) :|: TRUE f_664(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) -> f_666(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 f_666(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) -> f_668(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v192, v193, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 f_668(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v192, v193, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99998, 99999, 4, 400000) -> f_670(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v193, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v209 = v180 + 4 * v195 && 5 <= v209 f_670(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v193, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_672(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE f_672(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_674(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 f_674(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v190, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_676(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v194, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 f_676(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v194, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_678(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, v194, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v212 = v181 + 4 * v195 && 5 <= v212 f_678(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, v194, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_680(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE f_680(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_682(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE f_682(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v190, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_684(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5) :|: 0 = 0 f_684(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5) -> f_686(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: v214 = 1 + v195 && 2 <= v214 && v214 <= 100000 f_686(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_688(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE f_688(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_690(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE f_690(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, v192, v193, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_658(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v209, v210, v212, v214, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE f_658(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v190, 1, v192, v193, v194, v195, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99999, 100000, 4, 400000) -> f_659(v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v195, 1, v190, v192, v193, v194, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, 0, v208, 3, 399999, 99999, 100000, 4, 400000) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_659(v179:0, v180:0, v181:0, v182:0, v183:0, v184:0, v185:0, v186:0, v187:0, v188:0, v189:0, v195:0, 1, v190:0, v192:0, v193:0, v194:0, v196:0, v197:0, v198:0, v199:0, v200:0, v201:0, v202:0, v203:0, v204:0, v205:0, v206:0, 0, v208:0, 3, 399999, 99999, 100000, 4, 400000) -> f_659(v179:0, v180:0, v181:0, v182:0, v183:0, v184:0, v185:0, v186:0, v187:0, v188:0, v189:0, 1 + v195:0, 1, v195:0, v180:0 + 4 * v195:0, v210:0, v181:0 + 4 * v195:0, v196:0, v197:0, v198:0, v199:0, v200:0, v201:0, v202:0, v203:0, v204:0, v205:0, v206:0, 0, v208:0, 3, 399999, 99999, 100000, 4, 400000) :|: v190:0 < 99999 && v195:0 < 100000 && v180:0 + 4 * v195:0 > 4 && v181:0 + 4 * v195:0 > 4 && v195:0 > 0 Filtered unneeded arguments: f_659(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) -> f_659(x2, x3, x12, x14) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_659(v180:0, v181:0, v195:0, v190:0) -> f_659(v180:0, v181:0, 1 + v195:0, v195:0) :|: v195:0 < 100000 && v190:0 < 99999 && v180:0 + 4 * v195:0 > 4 && v195:0 > 0 && v181:0 + 4 * v195:0 > 4 ---------------------------------------- (58) Obligation: Rules: f_659(v180:0, v181:0, v195:0, v190:0) -> f_659(v180:0, v181:0, 1 + v195:0, v195:0) :|: v195:0 < 100000 && v190:0 < 99999 && v180:0 + 4 * v195:0 > 4 && v195:0 > 0 && v181:0 + 4 * v195:0 > 4 ---------------------------------------- (59) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_659_4,1) ---------------------------------------- (60) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; TO: 1; ---------------------------------------- (61) 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 4: -199998 - Rank function 2: RF for loc. 5: 1-2*x2 RF for loc. 6: -2*x2 Bound for (chained) transitions 3: -199998 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (62) YES