85.16/33.78 YES 85.16/33.79 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 85.16/33.79 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 85.16/33.79 85.16/33.79 85.16/33.79 Termination of the given C Problem could be proven: 85.16/33.79 85.16/33.79 (0) C Problem 85.16/33.79 (1) CToLLVMProof [EQUIVALENT, 175 ms] 85.16/33.79 (2) LLVM problem 85.16/33.79 (3) LLVMToTerminationGraphProof [EQUIVALENT, 23.4 s] 85.16/33.79 (4) LLVM Symbolic Execution Graph 85.16/33.79 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 85.16/33.79 (6) AND 85.16/33.79 (7) LLVM Symbolic Execution SCC 85.16/33.79 (8) SCC2IRS [SOUND, 127 ms] 85.16/33.79 (9) IntTRS 85.16/33.79 (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] 85.16/33.79 (11) IntTRS 85.16/33.79 (12) RankingReductionPairProof [EQUIVALENT, 0 ms] 85.16/33.79 (13) YES 85.16/33.79 (14) LLVM Symbolic Execution SCC 85.16/33.79 (15) SCC2IRS [SOUND, 94 ms] 85.16/33.79 (16) IntTRS 85.16/33.79 (17) IRS2T2 [EQUIVALENT, 0 ms] 85.16/33.79 (18) T2IntSys 85.16/33.79 (19) T2 [EQUIVALENT, 3 ms] 85.16/33.79 (20) YES 85.16/33.79 (21) LLVM Symbolic Execution SCC 85.16/33.79 (22) SCC2IRS [SOUND, 73 ms] 85.16/33.79 (23) IntTRS 85.16/33.79 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 85.16/33.79 (25) IntTRS 85.16/33.79 (26) RankingReductionPairProof [EQUIVALENT, 2 ms] 85.16/33.79 (27) YES 85.16/33.79 (28) LLVM Symbolic Execution SCC 85.16/33.79 (29) SCC2IRS [SOUND, 66 ms] 85.16/33.79 (30) IntTRS 85.16/33.79 (31) IRS2T2 [EQUIVALENT, 0 ms] 85.16/33.79 (32) T2IntSys 85.16/33.79 (33) T2 [EQUIVALENT, 943 ms] 85.16/33.79 (34) YES 85.16/33.79 (35) LLVM Symbolic Execution SCC 85.16/33.79 (36) SCC2IRS [SOUND, 95 ms] 85.16/33.79 (37) IntTRS 85.16/33.79 (38) IRS2T2 [EQUIVALENT, 0 ms] 85.16/33.79 (39) T2IntSys 85.16/33.79 (40) T2 [EQUIVALENT, 933 ms] 85.16/33.79 (41) YES 85.16/33.79 (42) LLVM Symbolic Execution SCC 85.16/33.79 (43) SCC2IRS [SOUND, 70 ms] 85.16/33.79 (44) IntTRS 85.16/33.79 (45) IRS2T2 [EQUIVALENT, 0 ms] 85.16/33.79 (46) T2IntSys 85.16/33.79 (47) T2 [EQUIVALENT, 3 ms] 85.16/33.79 (48) YES 85.16/33.79 (49) LLVM Symbolic Execution SCC 85.16/33.79 (50) SCC2IRS [SOUND, 51 ms] 85.16/33.79 (51) IntTRS 85.16/33.79 (52) IRS2T2 [EQUIVALENT, 0 ms] 85.16/33.79 (53) T2IntSys 85.16/33.79 (54) T2 [EQUIVALENT, 613 ms] 85.16/33.79 (55) YES 85.16/33.79 (56) LLVM Symbolic Execution SCC 85.16/33.79 (57) SCC2IRS [SOUND, 59 ms] 85.16/33.79 (58) IntTRS 85.16/33.79 (59) IRS2T2 [EQUIVALENT, 0 ms] 85.16/33.79 (60) T2IntSys 85.16/33.79 (61) T2 [EQUIVALENT, 3 ms] 85.16/33.79 (62) YES 85.16/33.79 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (0) 85.16/33.79 Obligation: 85.16/33.79 c file /export/starexec/sandbox/benchmark/theBenchmark.c 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (1) CToLLVMProof (EQUIVALENT) 85.16/33.79 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (2) 85.16/33.79 Obligation: 85.16/33.79 LLVM Problem 85.16/33.79 85.16/33.79 Aliases: 85.16/33.79 85.16/33.79 Data layout: 85.16/33.79 85.16/33.79 "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" 85.16/33.79 85.16/33.79 Machine: 85.16/33.79 85.16/33.79 "x86_64-pc-linux-gnu" 85.16/33.79 85.16/33.79 Type definitions: 85.16/33.79 85.16/33.79 Global variables: 85.16/33.79 85.16/33.79 Function declarations and definitions: 85.16/33.79 85.16/33.79 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 85.16/33.79 *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 85.16/33.79 0: 85.16/33.79 %1 = alloca i32, align 4 85.16/33.79 store %cond, %1 85.16/33.79 %2 = load %1 85.16/33.79 %3 = icmp ne %2 0 85.16/33.79 br %3, %6, %4 85.16/33.79 4: 85.16/33.79 br %5 85.16/33.79 5: 85.16/33.79 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 85.16/33.79 unreachable 85.16/33.79 6: 85.16/33.79 ret void 85.16/33.79 85.16/33.79 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 85.16/33.79 0: 85.16/33.79 %1 = alloca i32, align 4 85.16/33.79 %a1 = alloca [100000 x i32], align 16 85.16/33.79 %a2 = alloca [100000 x i32], align 16 85.16/33.79 %a3 = alloca [100000 x i32], align 16 85.16/33.79 %a4 = alloca [100000 x i32], align 16 85.16/33.79 %a5 = alloca [100000 x i32], align 16 85.16/33.79 %a6 = alloca [100000 x i32], align 16 85.16/33.79 %a7 = alloca [100000 x i32], align 16 85.16/33.79 %a8 = alloca [100000 x i32], align 16 85.16/33.79 %i = alloca i32, align 4 85.16/33.79 %x = alloca i32, align 4 85.16/33.79 store 0, %1 85.16/33.79 store 0, %i 85.16/33.79 br %2 85.16/33.79 2: 85.16/33.79 %3 = load %i 85.16/33.79 %4 = icmp slt %3 100000 85.16/33.79 br %4, %5, %16 85.16/33.79 5: 85.16/33.79 %6 = load %i 85.16/33.79 %7 = sext i32 %6 to i64 85.16/33.79 %8 = getelementptr %a1, 0, %7 85.16/33.79 %9 = load %8 85.16/33.79 %10 = load %i 85.16/33.79 %11 = sext i32 %10 to i64 85.16/33.79 %12 = getelementptr %a2, 0, %11 85.16/33.79 store %9, %12 85.16/33.79 br %13 85.16/33.79 13: 85.16/33.79 %14 = load %i 85.16/33.79 %15 = add %14 1 85.16/33.79 store %15, %i 85.16/33.79 br %2 85.16/33.79 16: 85.16/33.79 store 0, %i 85.16/33.79 br %17 85.16/33.79 17: 85.16/33.79 %18 = load %i 85.16/33.79 %19 = icmp slt %18 100000 85.16/33.79 br %19, %20, %31 85.16/33.79 20: 85.16/33.79 %21 = load %i 85.16/33.79 %22 = sext i32 %21 to i64 85.16/33.79 %23 = getelementptr %a2, 0, %22 85.16/33.79 %24 = load %23 85.16/33.79 %25 = load %i 85.16/33.79 %26 = sext i32 %25 to i64 85.16/33.79 %27 = getelementptr %a3, 0, %26 85.16/33.79 store %24, %27 85.16/33.79 br %28 85.16/33.79 28: 85.16/33.79 %29 = load %i 85.16/33.79 %30 = add %29 1 85.16/33.79 store %30, %i 85.16/33.79 br %17 85.16/33.79 31: 85.16/33.79 store 0, %i 85.16/33.79 br %32 85.16/33.79 32: 85.16/33.79 %33 = load %i 85.16/33.79 %34 = icmp slt %33 100000 85.16/33.79 br %34, %35, %46 85.16/33.79 35: 85.16/33.79 %36 = load %i 85.16/33.79 %37 = sext i32 %36 to i64 85.16/33.79 %38 = getelementptr %a3, 0, %37 85.16/33.79 %39 = load %38 85.16/33.79 %40 = load %i 85.16/33.79 %41 = sext i32 %40 to i64 85.16/33.79 %42 = getelementptr %a4, 0, %41 85.16/33.79 store %39, %42 85.16/33.79 br %43 85.16/33.79 43: 85.16/33.79 %44 = load %i 85.16/33.79 %45 = add %44 1 85.16/33.79 store %45, %i 85.16/33.79 br %32 85.16/33.79 46: 85.16/33.79 store 0, %i 85.16/33.79 br %47 85.16/33.79 47: 85.16/33.79 %48 = load %i 85.16/33.79 %49 = icmp slt %48 100000 85.16/33.79 br %49, %50, %61 85.16/33.79 50: 85.16/33.79 %51 = load %i 85.16/33.79 %52 = sext i32 %51 to i64 85.16/33.79 %53 = getelementptr %a4, 0, %52 85.16/33.79 %54 = load %53 85.16/33.79 %55 = load %i 85.16/33.79 %56 = sext i32 %55 to i64 85.16/33.79 %57 = getelementptr %a5, 0, %56 85.16/33.79 store %54, %57 85.16/33.79 br %58 85.16/33.79 58: 85.16/33.79 %59 = load %i 85.16/33.79 %60 = add %59 1 85.16/33.79 store %60, %i 85.16/33.79 br %47 85.16/33.79 61: 85.16/33.79 store 0, %i 85.16/33.79 br %62 85.16/33.79 62: 85.16/33.79 %63 = load %i 85.16/33.79 %64 = icmp slt %63 100000 85.16/33.79 br %64, %65, %76 85.16/33.79 65: 85.16/33.79 %66 = load %i 85.16/33.79 %67 = sext i32 %66 to i64 85.16/33.79 %68 = getelementptr %a5, 0, %67 85.16/33.79 %69 = load %68 85.16/33.79 %70 = load %i 85.16/33.79 %71 = sext i32 %70 to i64 85.16/33.79 %72 = getelementptr %a6, 0, %71 85.16/33.79 store %69, %72 85.16/33.79 br %73 85.16/33.79 73: 85.16/33.79 %74 = load %i 85.16/33.79 %75 = add %74 1 85.16/33.79 store %75, %i 85.16/33.79 br %62 85.16/33.79 76: 85.16/33.79 store 0, %i 85.16/33.79 br %77 85.16/33.79 77: 85.16/33.79 %78 = load %i 85.16/33.79 %79 = icmp slt %78 100000 85.16/33.79 br %79, %80, %91 85.16/33.79 80: 85.16/33.79 %81 = load %i 85.16/33.79 %82 = sext i32 %81 to i64 85.16/33.79 %83 = getelementptr %a6, 0, %82 85.16/33.79 %84 = load %83 85.16/33.79 %85 = load %i 85.16/33.79 %86 = sext i32 %85 to i64 85.16/33.79 %87 = getelementptr %a7, 0, %86 85.16/33.79 store %84, %87 85.16/33.79 br %88 85.16/33.79 88: 85.16/33.79 %89 = load %i 85.16/33.79 %90 = add %89 1 85.16/33.79 store %90, %i 85.16/33.79 br %77 85.16/33.79 91: 85.16/33.79 store 0, %i 85.16/33.79 br %92 85.16/33.79 92: 85.16/33.79 %93 = load %i 85.16/33.79 %94 = icmp slt %93 100000 85.16/33.79 br %94, %95, %106 85.16/33.79 95: 85.16/33.79 %96 = load %i 85.16/33.79 %97 = sext i32 %96 to i64 85.16/33.79 %98 = getelementptr %a7, 0, %97 85.16/33.79 %99 = load %98 85.16/33.79 %100 = load %i 85.16/33.79 %101 = sext i32 %100 to i64 85.16/33.79 %102 = getelementptr %a8, 0, %101 85.16/33.79 store %99, %102 85.16/33.79 br %103 85.16/33.79 103: 85.16/33.79 %104 = load %i 85.16/33.79 %105 = add %104 1 85.16/33.79 store %105, %i 85.16/33.79 br %92 85.16/33.79 106: 85.16/33.79 store 0, %x 85.16/33.79 br %107 85.16/33.79 107: 85.16/33.79 %108 = load %x 85.16/33.79 %109 = icmp slt %108 100000 85.16/33.79 br %109, %110, %124 85.16/33.79 110: 85.16/33.79 %111 = load %x 85.16/33.79 %112 = sext i32 %111 to i64 85.16/33.79 %113 = getelementptr %a1, 0, %112 85.16/33.79 %114 = load %113 85.16/33.79 %115 = load %x 85.16/33.79 %116 = sext i32 %115 to i64 85.16/33.79 %117 = getelementptr %a8, 0, %116 85.16/33.79 %118 = load %117 85.16/33.79 %119 = icmp eq %114 %118 85.16/33.79 %120 = zext i1 %119 to i32 85.16/33.79 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %120) 85.16/33.79 br %121 85.16/33.79 121: 85.16/33.79 %122 = load %x 85.16/33.79 %123 = add %122 1 85.16/33.79 store %123, %x 85.16/33.79 br %107 85.16/33.79 124: 85.16/33.79 ret 0 85.16/33.79 85.16/33.79 85.16/33.79 Analyze Termination of all function calls matching the pattern: 85.16/33.79 main() 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (3) LLVMToTerminationGraphProof (EQUIVALENT) 85.16/33.79 Constructed symbolic execution graph for LLVM program and proved memory safety. 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (4) 85.16/33.79 Obligation: 85.16/33.79 SE Graph 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (5) SymbolicExecutionGraphToSCCProof (SOUND) 85.16/33.79 Splitted symbolic execution graph to 8 SCCs. 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (6) 85.16/33.79 Complex Obligation (AND) 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (7) 85.16/33.79 Obligation: 85.16/33.79 SCC 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (8) SCC2IRS (SOUND) 85.16/33.79 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.79 Generated rules. Obtained 28 rulesP rules: 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 Combined rules. Obtained 1 rulesP rules: 85.16/33.79 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 85.16/33.79 Filtered unneeded arguments: 85.16/33.79 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) 85.16/33.79 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.79 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 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (9) 85.16/33.79 Obligation: 85.16/33.79 Rules: 85.16/33.79 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 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (10) IntTRSCompressionProof (EQUIVALENT) 85.16/33.79 Compressed rules. 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (11) 85.16/33.79 Obligation: 85.16/33.79 Rules: 85.16/33.79 f_1834(v4605:0:0, v4612:0:0, v4644:0:0, v4639:0:0) -> f_1834(v4605:0:0, v4612:0:0, 1 + v4644:0:0, v4644:0:0) :|: v4644:0:0 > 0 && v4612:0:0 + 4 * v4644:0:0 > 4 && v4605:0:0 + 4 * v4644:0:0 > 4 && v4639:0:0 < 99999 && v4644:0:0 < 100000 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (12) RankingReductionPairProof (EQUIVALENT) 85.16/33.79 Interpretation: 85.16/33.79 [ f_1834 ] = -1*f_1834_3 85.16/33.79 85.16/33.79 The following rules are decreasing: 85.16/33.79 f_1834(v4605:0:0, v4612:0:0, v4644:0:0, v4639:0:0) -> f_1834(v4605:0:0, v4612:0:0, 1 + v4644:0:0, v4644:0:0) :|: v4644:0:0 > 0 && v4612:0:0 + 4 * v4644:0:0 > 4 && v4605:0:0 + 4 * v4644:0:0 > 4 && v4639:0:0 < 99999 && v4644:0:0 < 100000 85.16/33.79 85.16/33.79 The following rules are bounded: 85.16/33.79 f_1834(v4605:0:0, v4612:0:0, v4644:0:0, v4639:0:0) -> f_1834(v4605:0:0, v4612:0:0, 1 + v4644:0:0, v4644:0:0) :|: v4644:0:0 > 0 && v4612:0:0 + 4 * v4644:0:0 > 4 && v4605:0:0 + 4 * v4644:0:0 > 4 && v4639:0:0 < 99999 && v4644:0:0 < 100000 85.16/33.79 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (13) 85.16/33.79 YES 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (14) 85.16/33.79 Obligation: 85.16/33.79 SCC 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (15) SCC2IRS (SOUND) 85.16/33.79 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.79 Generated rules. Obtained 18 rulesP rules: 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 Combined rules. Obtained 1 rulesP rules: 85.16/33.79 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 85.16/33.79 Filtered unneeded arguments: 85.16/33.79 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) 85.16/33.79 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.79 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 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (16) 85.16/33.79 Obligation: 85.16/33.79 Rules: 85.16/33.79 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 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (17) IRS2T2 (EQUIVALENT) 85.16/33.79 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.16/33.79 85.16/33.79 (f_1589_4,1) 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (18) 85.16/33.79 Obligation: 85.16/33.79 START: 0; 85.16/33.79 85.16/33.79 FROM: 0; 85.16/33.79 TO: 1; 85.16/33.79 85.16/33.79 FROM: 1; 85.16/33.79 oldX0 := x0; 85.16/33.79 oldX1 := x1; 85.16/33.79 oldX2 := x2; 85.16/33.79 oldX3 := x3; 85.16/33.79 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 85.16/33.79 x0 := oldX0; 85.16/33.79 x1 := oldX1; 85.16/33.79 x2 := 1 + oldX2; 85.16/33.79 x3 := oldX2; 85.16/33.79 TO: 1; 85.16/33.79 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (19) T2 (EQUIVALENT) 85.16/33.79 Initially, performed program simplifications using lexicographic rank functions: 85.16/33.79 * Removed transitions 1, 3, 4 using the following rank functions: 85.16/33.79 - Rank function 1: 85.16/33.79 RF for loc. 5: 1-2*x2 85.16/33.79 RF for loc. 6: -2*x2 85.16/33.79 Bound for (chained) transitions 4: -199998 85.16/33.79 - Rank function 2: 85.16/33.79 RF for loc. 5: 1-2*x2 85.16/33.79 RF for loc. 6: -2*x2 85.16/33.79 Bound for (chained) transitions 3: -199998 85.16/33.79 - Rank function 3: 85.16/33.79 RF for loc. 5: 1 85.16/33.79 RF for loc. 6: 0 85.16/33.79 Bound for (chained) transitions 1: 1 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (20) 85.16/33.79 YES 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (21) 85.16/33.79 Obligation: 85.16/33.79 SCC 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (22) SCC2IRS (SOUND) 85.16/33.79 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.79 Generated rules. Obtained 18 rulesP rules: 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 Combined rules. Obtained 1 rulesP rules: 85.16/33.79 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 85.16/33.79 Filtered unneeded arguments: 85.16/33.79 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) 85.16/33.79 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.79 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 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (23) 85.16/33.79 Obligation: 85.16/33.79 Rules: 85.16/33.79 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 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (24) IntTRSCompressionProof (EQUIVALENT) 85.16/33.79 Compressed rules. 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (25) 85.16/33.79 Obligation: 85.16/33.79 Rules: 85.16/33.79 f_1434(v3033:0:0, v3034:0:0, v3061:0:0, v3056:0:0) -> f_1434(v3033:0:0, v3034:0:0, 1 + v3061:0:0, v3061:0:0) :|: v3061:0:0 > 0 && v3034:0:0 + 4 * v3061:0:0 > 4 && v3033:0:0 + 4 * v3061:0:0 > 4 && v3056:0:0 < 99999 && v3061:0:0 < 100000 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (26) RankingReductionPairProof (EQUIVALENT) 85.16/33.79 Interpretation: 85.16/33.79 [ f_1434 ] = -1*f_1434_3 85.16/33.79 85.16/33.79 The following rules are decreasing: 85.16/33.79 f_1434(v3033:0:0, v3034:0:0, v3061:0:0, v3056:0:0) -> f_1434(v3033:0:0, v3034:0:0, 1 + v3061:0:0, v3061:0:0) :|: v3061:0:0 > 0 && v3034:0:0 + 4 * v3061:0:0 > 4 && v3033:0:0 + 4 * v3061:0:0 > 4 && v3056:0:0 < 99999 && v3061:0:0 < 100000 85.16/33.79 85.16/33.79 The following rules are bounded: 85.16/33.79 f_1434(v3033:0:0, v3034:0:0, v3061:0:0, v3056:0:0) -> f_1434(v3033:0:0, v3034:0:0, 1 + v3061:0:0, v3061:0:0) :|: v3061:0:0 > 0 && v3034:0:0 + 4 * v3061:0:0 > 4 && v3033:0:0 + 4 * v3061:0:0 > 4 && v3056:0:0 < 99999 && v3061:0:0 < 100000 85.16/33.79 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (27) 85.16/33.79 YES 85.16/33.79 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (28) 85.16/33.79 Obligation: 85.16/33.79 SCC 85.16/33.79 ---------------------------------------- 85.16/33.79 85.16/33.79 (29) SCC2IRS (SOUND) 85.16/33.79 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.79 Generated rules. Obtained 18 rulesP rules: 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 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 85.16/33.79 Combined rules. Obtained 1 rulesP rules: 85.16/33.79 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 85.16/33.79 Filtered unneeded arguments: 85.16/33.79 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) 85.16/33.79 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.79 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (30) 85.16/33.80 Obligation: 85.16/33.80 Rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (31) IRS2T2 (EQUIVALENT) 85.16/33.80 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.16/33.80 85.16/33.80 (f_1279_4,1) 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (32) 85.16/33.80 Obligation: 85.16/33.80 START: 0; 85.16/33.80 85.16/33.80 FROM: 0; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 FROM: 1; 85.16/33.80 oldX0 := x0; 85.16/33.80 oldX1 := x1; 85.16/33.80 oldX2 := x2; 85.16/33.80 oldX3 := x3; 85.16/33.80 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 85.16/33.80 x0 := oldX0; 85.16/33.80 x1 := oldX1; 85.16/33.80 x2 := 1 + oldX2; 85.16/33.80 x3 := oldX2; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (33) T2 (EQUIVALENT) 85.16/33.80 Initially, performed program simplifications using lexicographic rank functions: 85.16/33.80 * Removed transitions 1, 3, 4 using the following rank functions: 85.16/33.80 - Rank function 1: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 4: -199998 85.16/33.80 - Rank function 2: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 3: -199998 85.16/33.80 - Rank function 3: 85.16/33.80 RF for loc. 5: 1 85.16/33.80 RF for loc. 6: 0 85.16/33.80 Bound for (chained) transitions 1: 1 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (34) 85.16/33.80 YES 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (35) 85.16/33.80 Obligation: 85.16/33.80 SCC 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (36) SCC2IRS (SOUND) 85.16/33.80 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.80 Generated rules. Obtained 18 rulesP rules: 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 Combined rules. Obtained 1 rulesP rules: 85.16/33.80 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 85.16/33.80 Filtered unneeded arguments: 85.16/33.80 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) 85.16/33.80 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (37) 85.16/33.80 Obligation: 85.16/33.80 Rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (38) IRS2T2 (EQUIVALENT) 85.16/33.80 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.16/33.80 85.16/33.80 (f_1124_4,1) 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (39) 85.16/33.80 Obligation: 85.16/33.80 START: 0; 85.16/33.80 85.16/33.80 FROM: 0; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 FROM: 1; 85.16/33.80 oldX0 := x0; 85.16/33.80 oldX1 := x1; 85.16/33.80 oldX2 := x2; 85.16/33.80 oldX3 := x3; 85.16/33.80 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 85.16/33.80 x0 := oldX0; 85.16/33.80 x1 := oldX1; 85.16/33.80 x2 := 1 + oldX2; 85.16/33.80 x3 := oldX2; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (40) T2 (EQUIVALENT) 85.16/33.80 Initially, performed program simplifications using lexicographic rank functions: 85.16/33.80 * Removed transitions 1, 3, 4 using the following rank functions: 85.16/33.80 - Rank function 1: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 4: -199998 85.16/33.80 - Rank function 2: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 3: -199998 85.16/33.80 - Rank function 3: 85.16/33.80 RF for loc. 5: 1 85.16/33.80 RF for loc. 6: 0 85.16/33.80 Bound for (chained) transitions 1: 1 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (41) 85.16/33.80 YES 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (42) 85.16/33.80 Obligation: 85.16/33.80 SCC 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (43) SCC2IRS (SOUND) 85.16/33.80 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.80 Generated rules. Obtained 18 rulesP rules: 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 Combined rules. Obtained 1 rulesP rules: 85.16/33.80 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 85.16/33.80 Filtered unneeded arguments: 85.16/33.80 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) 85.16/33.80 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (44) 85.16/33.80 Obligation: 85.16/33.80 Rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (45) IRS2T2 (EQUIVALENT) 85.16/33.80 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.16/33.80 85.16/33.80 (f_969_4,1) 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (46) 85.16/33.80 Obligation: 85.16/33.80 START: 0; 85.16/33.80 85.16/33.80 FROM: 0; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 FROM: 1; 85.16/33.80 oldX0 := x0; 85.16/33.80 oldX1 := x1; 85.16/33.80 oldX2 := x2; 85.16/33.80 oldX3 := x3; 85.16/33.80 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 85.16/33.80 x0 := oldX0; 85.16/33.80 x1 := oldX1; 85.16/33.80 x2 := 1 + oldX2; 85.16/33.80 x3 := oldX2; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (47) T2 (EQUIVALENT) 85.16/33.80 Initially, performed program simplifications using lexicographic rank functions: 85.16/33.80 * Removed transitions 1, 3, 4 using the following rank functions: 85.16/33.80 - Rank function 1: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 4: -199998 85.16/33.80 - Rank function 2: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 3: -199998 85.16/33.80 - Rank function 3: 85.16/33.80 RF for loc. 5: 1 85.16/33.80 RF for loc. 6: 0 85.16/33.80 Bound for (chained) transitions 1: 1 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (48) 85.16/33.80 YES 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (49) 85.16/33.80 Obligation: 85.16/33.80 SCC 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (50) SCC2IRS (SOUND) 85.16/33.80 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.80 Generated rules. Obtained 18 rulesP rules: 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 Combined rules. Obtained 1 rulesP rules: 85.16/33.80 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 85.16/33.80 Filtered unneeded arguments: 85.16/33.80 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) 85.16/33.80 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (51) 85.16/33.80 Obligation: 85.16/33.80 Rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (52) IRS2T2 (EQUIVALENT) 85.16/33.80 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.16/33.80 85.16/33.80 (f_814_4,1) 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (53) 85.16/33.80 Obligation: 85.16/33.80 START: 0; 85.16/33.80 85.16/33.80 FROM: 0; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 FROM: 1; 85.16/33.80 oldX0 := x0; 85.16/33.80 oldX1 := x1; 85.16/33.80 oldX2 := x2; 85.16/33.80 oldX3 := x3; 85.16/33.80 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 85.16/33.80 x0 := oldX0; 85.16/33.80 x1 := oldX1; 85.16/33.80 x2 := 1 + oldX2; 85.16/33.80 x3 := oldX2; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (54) T2 (EQUIVALENT) 85.16/33.80 Initially, performed program simplifications using lexicographic rank functions: 85.16/33.80 * Removed transitions 1, 3, 4 using the following rank functions: 85.16/33.80 - Rank function 1: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 4: -199998 85.16/33.80 - Rank function 2: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 3: -199998 85.16/33.80 - Rank function 3: 85.16/33.80 RF for loc. 5: 1 85.16/33.80 RF for loc. 6: 0 85.16/33.80 Bound for (chained) transitions 1: 1 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (55) 85.16/33.80 YES 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (56) 85.16/33.80 Obligation: 85.16/33.80 SCC 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (57) SCC2IRS (SOUND) 85.16/33.80 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.16/33.80 Generated rules. Obtained 18 rulesP rules: 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 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 85.16/33.80 Combined rules. Obtained 1 rulesP rules: 85.16/33.80 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 85.16/33.80 Filtered unneeded arguments: 85.16/33.80 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) 85.16/33.80 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (58) 85.16/33.80 Obligation: 85.16/33.80 Rules: 85.16/33.80 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 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (59) IRS2T2 (EQUIVALENT) 85.16/33.80 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.16/33.80 85.16/33.80 (f_659_4,1) 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (60) 85.16/33.80 Obligation: 85.16/33.80 START: 0; 85.16/33.80 85.16/33.80 FROM: 0; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 FROM: 1; 85.16/33.80 oldX0 := x0; 85.16/33.80 oldX1 := x1; 85.16/33.80 oldX2 := x2; 85.16/33.80 oldX3 := x3; 85.16/33.80 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 85.16/33.80 x0 := oldX0; 85.16/33.80 x1 := oldX1; 85.16/33.80 x2 := 1 + oldX2; 85.16/33.80 x3 := oldX2; 85.16/33.80 TO: 1; 85.16/33.80 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (61) T2 (EQUIVALENT) 85.16/33.80 Initially, performed program simplifications using lexicographic rank functions: 85.16/33.80 * Removed transitions 1, 3, 4 using the following rank functions: 85.16/33.80 - Rank function 1: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 4: -199998 85.16/33.80 - Rank function 2: 85.16/33.80 RF for loc. 5: 1-2*x2 85.16/33.80 RF for loc. 6: -2*x2 85.16/33.80 Bound for (chained) transitions 3: -199998 85.16/33.80 - Rank function 3: 85.16/33.80 RF for loc. 5: 1 85.16/33.80 RF for loc. 6: 0 85.16/33.80 Bound for (chained) transitions 1: 1 85.16/33.80 85.16/33.80 ---------------------------------------- 85.16/33.80 85.16/33.80 (62) 85.16/33.80 YES 85.48/33.88 EOF