69.09/24.17 YES 69.22/24.19 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 69.22/24.19 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 69.22/24.19 69.22/24.19 69.22/24.19 Termination of the given C Problem could be proven: 69.22/24.19 69.22/24.19 (0) C Problem 69.22/24.19 (1) CToLLVMProof [EQUIVALENT, 174 ms] 69.22/24.19 (2) LLVM problem 69.22/24.19 (3) LLVMToTerminationGraphProof [EQUIVALENT, 18.1 s] 69.22/24.19 (4) LLVM Symbolic Execution Graph 69.22/24.19 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 69.22/24.19 (6) AND 69.22/24.19 (7) LLVM Symbolic Execution SCC 69.22/24.19 (8) SCC2IRS [SOUND, 20 ms] 69.22/24.19 (9) IntTRS 69.22/24.19 (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] 69.22/24.19 (11) IntTRS 69.22/24.19 (12) RankingReductionPairProof [EQUIVALENT, 22 ms] 69.22/24.19 (13) YES 69.22/24.19 (14) LLVM Symbolic Execution SCC 69.22/24.19 (15) SCC2IRS [SOUND, 69 ms] 69.22/24.19 (16) IntTRS 69.22/24.19 (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] 69.22/24.19 (18) IntTRS 69.22/24.19 (19) RankingReductionPairProof [EQUIVALENT, 15 ms] 69.22/24.19 (20) YES 69.22/24.19 (21) LLVM Symbolic Execution SCC 69.22/24.19 (22) SCC2IRS [SOUND, 46 ms] 69.22/24.19 (23) IntTRS 69.22/24.19 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 69.22/24.19 (25) IntTRS 69.22/24.19 (26) RankingReductionPairProof [EQUIVALENT, 0 ms] 69.22/24.19 (27) YES 69.22/24.19 69.22/24.19 69.22/24.19 ---------------------------------------- 69.22/24.19 69.22/24.19 (0) 69.22/24.19 Obligation: 69.22/24.19 c file /export/starexec/sandbox/benchmark/theBenchmark.c 69.22/24.19 ---------------------------------------- 69.22/24.19 69.22/24.19 (1) CToLLVMProof (EQUIVALENT) 69.22/24.19 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 69.22/24.19 ---------------------------------------- 69.22/24.19 69.22/24.19 (2) 69.22/24.19 Obligation: 69.22/24.19 LLVM Problem 69.22/24.19 69.22/24.19 Aliases: 69.22/24.19 69.22/24.19 Data layout: 69.22/24.19 69.22/24.19 "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" 69.22/24.19 69.22/24.19 Machine: 69.22/24.19 69.22/24.19 "x86_64-pc-linux-gnu" 69.22/24.19 69.22/24.19 Type definitions: 69.22/24.19 69.22/24.19 Global variables: 69.22/24.19 69.22/24.19 Function declarations and definitions: 69.22/24.19 69.22/24.19 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 69.22/24.19 *BasicFunctionTypename: "cstrlcpy" linkageType: EXTERNALLY_VISIBLE returnParam: i64 parameters: (dst *i8, src *i8, siz i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc 69.22/24.20 0: 69.22/24.20 %1 = alloca *i8, align 8 69.22/24.20 %2 = alloca *i8, align 8 69.22/24.20 %3 = alloca i64, align 8 69.22/24.20 %d = alloca *i8, align 8 69.22/24.20 %s = alloca *i8, align 8 69.22/24.20 %n = alloca i64, align 8 69.22/24.20 store %dst, %1 69.22/24.20 store %src, %2 69.22/24.20 store %siz, %3 69.22/24.20 %4 = load %1 69.22/24.20 store %4, %d 69.22/24.20 %5 = load %2 69.22/24.20 store %5, %s 69.22/24.20 %6 = load %3 69.22/24.20 store %6, %n 69.22/24.20 %7 = load %n 69.22/24.20 %8 = icmp ne %7 0 69.22/24.20 br %8, %9, %25 69.22/24.20 9: 69.22/24.20 br %10 69.22/24.20 10: 69.22/24.20 %11 = load %n 69.22/24.20 %12 = add %11 -1 69.22/24.20 store %12, %n 69.22/24.20 %13 = icmp ne %12 0 69.22/24.20 br %13, %14, %24 69.22/24.20 14: 69.22/24.20 %15 = load %s 69.22/24.20 %16 = getelementptr %15, 1 69.22/24.20 store %16, %s 69.22/24.20 %17 = load %15 69.22/24.20 %18 = load %d 69.22/24.20 %19 = getelementptr %18, 1 69.22/24.20 store %19, %d 69.22/24.20 store %17, %18 69.22/24.20 %20 = sext i8 %17 to i32 69.22/24.20 %21 = icmp eq %20 0 69.22/24.20 br %21, %22, %23 69.22/24.20 22: 69.22/24.20 br %24 69.22/24.20 23: 69.22/24.20 br %10 69.22/24.20 24: 69.22/24.20 br %25 69.22/24.20 25: 69.22/24.20 %26 = load %n 69.22/24.20 %27 = icmp eq %26 0 69.22/24.20 br %27, %28, %41 69.22/24.20 28: 69.22/24.20 %29 = load %3 69.22/24.20 %30 = icmp ne %29 0 69.22/24.20 br %30, %31, %33 69.22/24.20 31: 69.22/24.20 %32 = load %d 69.22/24.20 store 0, %32 69.22/24.20 br %33 69.22/24.20 33: 69.22/24.20 br %34 69.22/24.20 34: 69.22/24.20 %35 = load %s 69.22/24.20 %36 = getelementptr %35, 1 69.22/24.20 store %36, %s 69.22/24.20 %37 = load %35 69.22/24.20 %38 = icmp ne %37 0 69.22/24.20 br %38, %39, %40 69.22/24.20 39: 69.22/24.20 br %34 69.22/24.20 40: 69.22/24.20 br %41 69.22/24.20 41: 69.22/24.20 %42 = load %s 69.22/24.20 %43 = load %2 69.22/24.20 %44 = ptrtoint *i8 %42 to i64 69.22/24.20 %45 = ptrtoint *i8 %43 to i64 69.22/24.20 %46 = sub %44 %45 69.22/24.20 %47 = sub %46 1 69.22/24.20 ret %47 69.22/24.20 69.22/24.20 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 69.22/24.20 0: 69.22/24.20 %1 = alloca i32, align 4 69.22/24.20 %length = alloca i32, align 4 69.22/24.20 %n = alloca i32, align 4 69.22/24.20 %nondetString1 = alloca *i8, align 8 69.22/24.20 %nondetString2 = alloca *i8, align 8 69.22/24.20 store 0, %1 69.22/24.20 %2 = call i32 @__VERIFIER_nondet_int() 69.22/24.20 store %2, %length 69.22/24.20 %3 = call i32 @__VERIFIER_nondet_int() 69.22/24.20 store %3, %n 69.22/24.20 %4 = load %length 69.22/24.20 %5 = icmp slt %4 1 69.22/24.20 br %5, %6, %7 69.22/24.20 6: 69.22/24.20 store 1, %length 69.22/24.20 br %7 69.22/24.20 7: 69.22/24.20 %8 = load %n 69.22/24.20 %9 = icmp slt %8 1 69.22/24.20 br %9, %10, %11 69.22/24.20 10: 69.22/24.20 store 1, %n 69.22/24.20 br %11 69.22/24.20 11: 69.22/24.20 %12 = load %n 69.22/24.20 %13 = sext i32 %12 to i64 69.22/24.20 %14 = mul %13 1 69.22/24.20 %15 = alloca i8, numElementsLit: %14 69.22/24.20 store %15, %nondetString1 69.22/24.20 %16 = load %length 69.22/24.20 %17 = sext i32 %16 to i64 69.22/24.20 %18 = mul %17 1 69.22/24.20 %19 = alloca i8, numElementsLit: %18 69.22/24.20 store %19, %nondetString2 69.22/24.20 %20 = load %n 69.22/24.20 %21 = sub %20 1 69.22/24.20 %22 = sext i32 %21 to i64 69.22/24.20 %23 = load %nondetString1 69.22/24.20 %24 = getelementptr %23, %22 69.22/24.20 store 0, %24 69.22/24.20 %25 = load %length 69.22/24.20 %26 = sub %25 1 69.22/24.20 %27 = sext i32 %26 to i64 69.22/24.20 %28 = load %nondetString2 69.22/24.20 %29 = getelementptr %28, %27 69.22/24.20 store 0, %29 69.22/24.20 %30 = load %nondetString1 69.22/24.20 %31 = load %nondetString2 69.22/24.20 %32 = load %n 69.22/24.20 %33 = sext i32 %32 to i64 69.22/24.20 %34 = call i64 @cstrlcpy(*i8 %30, *i8 %31, i64 %33) 69.22/24.20 ret 0 69.22/24.20 69.22/24.20 69.22/24.20 Analyze Termination of all function calls matching the pattern: 69.22/24.20 main() 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (3) LLVMToTerminationGraphProof (EQUIVALENT) 69.22/24.20 Constructed symbolic execution graph for LLVM program and proved memory safety. 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (4) 69.22/24.20 Obligation: 69.22/24.20 SE Graph 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (5) SymbolicExecutionGraphToSCCProof (SOUND) 69.22/24.20 Splitted symbolic execution graph to 3 SCCs. 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (6) 69.22/24.20 Complex Obligation (AND) 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (7) 69.22/24.20 Obligation: 69.22/24.20 SCC 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (8) SCC2IRS (SOUND) 69.22/24.20 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 69.22/24.20 Generated rules. Obtained 10 rulesP rules: 69.22/24.20 f_1069(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1072(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: v4289 = 1 + v4206 && 4 <= v4289 69.22/24.20 f_1072(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1075(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1075(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1078(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1078(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1081(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: v4293 != 0 && v4206 < v4217 && 4 <= v4217 69.22/24.20 f_1081(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1084(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: 0 = 0 69.22/24.20 f_1084(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1087(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1087(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4207, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1088(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4289, v4293, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4432, v4434, v4232, v4213, v4430, v4436, v4431, v4437, v4415, v4417, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1088(v4390, v4391, v4392, v4393, v4394, v4395, v4396, v4397, v4398, 1, 0, v4401, v4402, v4403, v4404, v4405, v4406, v4407, v4408, v4409, v4419, v4410, v4420, v4411, v4421, v4412, v4422, v4413, v4423, v4416, v4418, v4424, v4425, v4426, v4427, v4428, v4429, v4433, v4432, v4434, v4435, v4414, v4430, v4436, v4431, v4437, v4415, v4417, 3, 7, 2, 4, 8) -> f_1091(v4390, v4391, v4392, v4393, v4394, v4395, v4396, v4397, v4398, 1, 0, v4401, v4402, v4403, v4404, v4405, v4406, v4407, v4408, v4409, v4419, v4410, v4420, v4411, v4421, v4412, v4422, v4413, v4423, v4416, v4418, v4424, v4425, v4426, v4427, v4428, v4429, v4433, v4432, v4434, v4435, v4414, v4430, v4436, v4431, v4437, v4415, v4417, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1091(v4390, v4391, v4392, v4393, v4394, v4395, v4396, v4397, v4398, 1, 0, v4401, v4402, v4403, v4404, v4405, v4406, v4407, v4408, v4409, v4419, v4410, v4420, v4411, v4421, v4412, v4422, v4413, v4423, v4416, v4418, v4424, v4425, v4426, v4427, v4428, v4429, v4433, v4432, v4434, v4435, v4414, v4430, v4436, v4431, v4437, v4415, v4417, 3, 7, 2, 4, 8) -> f_1066(v4390, v4391, v4392, v4393, v4394, v4395, v4396, v4397, v4398, 1, 0, v4401, v4402, v4403, v4404, v4405, v4406, v4407, v4408, v4409, v4419, v4410, v4420, v4411, v4421, v4412, v4422, v4413, v4423, v4416, v4418, v4424, v4425, v4426, v4427, v4428, v4429, v4433, v4435, v4229, v4233, v4230, v4234, v4414, v4214, v4216, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1066(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4205, v4206, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4213, v4214, v4216, 3, 7, 2, 4, 8) -> f_1069(v4189, v4190, v4191, v4192, v4193, v4194, v4195, v4196, v4197, 1, 0, v4200, v4201, v4202, v4203, v4204, v4206, v4207, v4208, v4218, v4209, v4219, v4210, v4220, v4211, v4221, v4212, v4222, v4215, v4217, v4223, v4224, v4225, v4226, v4227, v4228, v4231, v4232, v4229, v4233, v4230, v4234, v4205, v4213, v4214, v4216, 3, 7, 2, 4, 8) :|: 0 = 0 69.22/24.20 Combined rules. Obtained 2 rulesP rules: 69.22/24.20 f_1069(v4189:0, v4190:0, v4191:0, v4192:0, v4193:0, v4194:0, v4195:0, v4196:0, v4197:0, 1, 0, v4200:0, v4201:0, v4202:0, v4203:0, v4204:0, v4206:0, v4207:0, v4208:0, v4218:0, v4209:0, v4219:0, v4210:0, v4220:0, v4211:0, v4221:0, v4212:0, v4222:0, v4215:0, v4217:0, v4223:0, v4224:0, v4225:0, v4226:0, v4227:0, v4228:0, v4231:0, v4232:0, v4229:0, v4233:0, v4230:0, v4234:0, v4205:0, v4213:0, v4214:0, v4216:0, 3, 7, 2, 4, 8) -> f_1069(v4189:0, v4190:0, v4191:0, v4192:0, v4193:0, v4194:0, v4195:0, v4196:0, v4197:0, 1, 0, v4200:0, v4201:0, v4202:0, v4203:0, v4204:0, 1 + v4206:0, v4293:0, v4208:0, v4218:0, v4209:0, v4219:0, v4210:0, v4220:0, v4211:0, v4221:0, v4212:0, v4222:0, v4215:0, v4217:0, v4223:0, v4224:0, v4225:0, v4226:0, v4227:0, v4228:0, v4231:0, v4232:0, v4229:1, v4233:1, v4230:1, v4234:1, v4206:0, v4213:0, v4214:1, v4216:1, 3, 7, 2, 4, 8) :|: v4206:0 > 2 && v4217:0 > v4206:0 && v4217:0 > 3 && v4293:0 < 0 69.22/24.20 f_1069(v4189:0, v4190:0, v4191:0, v4192:0, v4193:0, v4194:0, v4195:0, v4196:0, v4197:0, 1, 0, v4200:0, v4201:0, v4202:0, v4203:0, v4204:0, v4206:0, v4207:0, v4208:0, v4218:0, v4209:0, v4219:0, v4210:0, v4220:0, v4211:0, v4221:0, v4212:0, v4222:0, v4215:0, v4217:0, v4223:0, v4224:0, v4225:0, v4226:0, v4227:0, v4228:0, v4231:0, v4232:0, v4229:0, v4233:0, v4230:0, v4234:0, v4205:0, v4213:0, v4214:0, v4216:0, 3, 7, 2, 4, 8) -> f_1069(v4189:0, v4190:0, v4191:0, v4192:0, v4193:0, v4194:0, v4195:0, v4196:0, v4197:0, 1, 0, v4200:0, v4201:0, v4202:0, v4203:0, v4204:0, 1 + v4206:0, v4293:0, v4208:0, v4218:0, v4209:0, v4219:0, v4210:0, v4220:0, v4211:0, v4221:0, v4212:0, v4222:0, v4215:0, v4217:0, v4223:0, v4224:0, v4225:0, v4226:0, v4227:0, v4228:0, v4231:0, v4232:0, v4229:1, v4233:1, v4230:1, v4234:1, v4206:0, v4213:0, v4214:1, v4216:1, 3, 7, 2, 4, 8) :|: v4206:0 > 2 && v4217:0 > v4206:0 && v4217:0 > 3 && v4293:0 > 0 69.22/24.20 Filtered unneeded arguments: 69.22/24.20 f_1069(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_1069(x17, x30) 69.22/24.20 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 69.22/24.20 f_1069(v4206:0, v4217:0) -> f_1069(1 + v4206:0, v4217:0) :|: v4217:0 > v4206:0 && v4217:0 > 3 && v4206:0 > 2 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (9) 69.22/24.20 Obligation: 69.22/24.20 Rules: 69.22/24.20 f_1069(v4206:0, v4217:0) -> f_1069(1 + v4206:0, v4217:0) :|: v4217:0 > v4206:0 && v4217:0 > 3 && v4206:0 > 2 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (10) IntTRSCompressionProof (EQUIVALENT) 69.22/24.20 Compressed rules. 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (11) 69.22/24.20 Obligation: 69.22/24.20 Rules: 69.22/24.20 f_1069(v4206:0:0, v4217:0:0) -> f_1069(1 + v4206:0:0, v4217:0:0) :|: v4217:0:0 > v4206:0:0 && v4217:0:0 > 3 && v4206:0:0 > 2 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (12) RankingReductionPairProof (EQUIVALENT) 69.22/24.20 Interpretation: 69.22/24.20 [ f_1069 ] = f_1069_2 + -1*f_1069_1 69.22/24.20 69.22/24.20 The following rules are decreasing: 69.22/24.20 f_1069(v4206:0:0, v4217:0:0) -> f_1069(1 + v4206:0:0, v4217:0:0) :|: v4217:0:0 > v4206:0:0 && v4217:0:0 > 3 && v4206:0:0 > 2 69.22/24.20 69.22/24.20 The following rules are bounded: 69.22/24.20 f_1069(v4206:0:0, v4217:0:0) -> f_1069(1 + v4206:0:0, v4217:0:0) :|: v4217:0:0 > v4206:0:0 && v4217:0:0 > 3 && v4206:0:0 > 2 69.22/24.20 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (13) 69.22/24.20 YES 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (14) 69.22/24.20 Obligation: 69.22/24.20 SCC 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (15) SCC2IRS (SOUND) 69.22/24.20 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 69.22/24.20 Generated rules. Obtained 20 rulesP rules: 69.22/24.20 f_1012(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) -> f_1013(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) :|: 1 + v3557 = v3525 && 0 <= v3557 69.22/24.20 f_1013(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) -> f_1014(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1014(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) -> f_1015(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: v3557 != 0 && 2 <= v3525 && 3 <= v3538 && 4 <= v3516 && 4 <= v3539 69.22/24.20 f_1015(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1017(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: 0 = 0 69.22/24.20 f_1017(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1019(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1019(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1021(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: 0 = 0 69.22/24.20 f_1021(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1023(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: v3659 = 1 + v3527 && 4 <= v3659 69.22/24.20 f_1023(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1025(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1025(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1027(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3529, v3530, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1027(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3529, v3530, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1029(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: 0 = 0 69.22/24.20 f_1029(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1031(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: v3671 = 1 + v3530 && 4 <= v3671 69.22/24.20 f_1031(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1033(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1033(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1035(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1035(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, v3528, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1037(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: 0 = 0 69.22/24.20 f_1037(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1040(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: v3661 != 0 && v3527 < v3541 && 4 <= v3541 69.22/24.20 f_1040(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1043(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: 0 = 0 69.22/24.20 f_1043(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1046(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1046(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1049(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) :|: TRUE 69.22/24.20 f_1049(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3526, v3528, v3529, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 4, 2, 8) -> f_1011(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3557, v3527, v3659, v3661, v3530, v3671, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_1011(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3524, v3525, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) -> f_1012(v3514, v3515, v3516, v3517, v3518, v3519, v3520, v3521, v3522, 1, v3525, v3526, v3527, v3528, v3529, v3530, 0, v3532, v3542, v3533, v3543, v3534, v3544, v3535, v3545, v3536, v3546, v3539, v3541, v3547, v3548, v3549, v3550, v3551, v3552, v3555, v3537, v3553, v3556, v3554, v3538, v3540, 3, 7, 2, 4, 8) :|: 0 = 0 69.22/24.20 Combined rules. Obtained 2 rulesP rules: 69.22/24.20 f_1012(v3514:0, v3515:0, v3516:0, v3517:0, v3518:0, v3519:0, v3520:0, v3521:0, v3522:0, 1, 1 + v3557:0, v3526:0, v3527:0, v3528:0, v3529:0, v3530:0, 0, v3532:0, v3542:0, v3533:0, v3543:0, v3534:0, v3544:0, v3535:0, v3545:0, v3536:0, v3546:0, v3539:0, v3541:0, v3547:0, v3548:0, v3549:0, v3550:0, v3551:0, v3552:0, v3555:0, v3537:0, v3553:0, v3556:0, v3554:0, v3538:0, v3540:0, 3, 7, 2, 4, 8) -> f_1012(v3514:0, v3515:0, v3516:0, v3517:0, v3518:0, v3519:0, v3520:0, v3521:0, v3522:0, 1, v3557:0, v3527:0, 1 + v3527:0, v3661:0, v3530:0, 1 + v3530:0, 0, v3532:0, v3542:0, v3533:0, v3543:0, v3534:0, v3544:0, v3535:0, v3545:0, v3536:0, v3546:0, v3539:0, v3541:0, v3547:0, v3548:0, v3549:0, v3550:0, v3551:0, v3552:0, v3555:0, v3537:0, v3553:0, v3556:0, v3554:0, v3538:0, v3540:0, 3, 7, 2, 4, 8) :|: v3557:0 > 0 && v3538:0 > 2 && v3516:0 > 3 && v3539:0 > 3 && v3527:0 > 2 && v3530:0 > 2 && v3541:0 > v3527:0 && v3541:0 > 3 && v3661:0 < 0 69.22/24.20 f_1012(v3514:0, v3515:0, v3516:0, v3517:0, v3518:0, v3519:0, v3520:0, v3521:0, v3522:0, 1, 1 + v3557:0, v3526:0, v3527:0, v3528:0, v3529:0, v3530:0, 0, v3532:0, v3542:0, v3533:0, v3543:0, v3534:0, v3544:0, v3535:0, v3545:0, v3536:0, v3546:0, v3539:0, v3541:0, v3547:0, v3548:0, v3549:0, v3550:0, v3551:0, v3552:0, v3555:0, v3537:0, v3553:0, v3556:0, v3554:0, v3538:0, v3540:0, 3, 7, 2, 4, 8) -> f_1012(v3514:0, v3515:0, v3516:0, v3517:0, v3518:0, v3519:0, v3520:0, v3521:0, v3522:0, 1, v3557:0, v3527:0, 1 + v3527:0, v3661:0, v3530:0, 1 + v3530:0, 0, v3532:0, v3542:0, v3533:0, v3543:0, v3534:0, v3544:0, v3535:0, v3545:0, v3536:0, v3546:0, v3539:0, v3541:0, v3547:0, v3548:0, v3549:0, v3550:0, v3551:0, v3552:0, v3555:0, v3537:0, v3553:0, v3556:0, v3554:0, v3538:0, v3540:0, 3, 7, 2, 4, 8) :|: v3557:0 > 0 && v3538:0 > 2 && v3516:0 > 3 && v3539:0 > 3 && v3527:0 > 2 && v3530:0 > 2 && v3541:0 > v3527:0 && v3541:0 > 3 && v3661:0 > 0 69.22/24.20 Filtered unneeded arguments: 69.22/24.20 f_1012(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) -> f_1012(x3, x11, x13, x16, x28, x29, x41) 69.22/24.20 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 69.22/24.20 f_1012(v3516:0, sum~cons_1~v3557:0, v3527:0, v3530:0, v3539:0, v3541:0, v3538:0) -> f_1012(v3516:0, v3557:0, 1 + v3527:0, 1 + v3530:0, v3539:0, v3541:0, v3538:0) :|: v3538:0 > 2 && v3557:0 > 0 && v3516:0 > 3 && v3539:0 > 3 && v3527:0 > 2 && v3530:0 > 2 && v3541:0 > 3 && v3541:0 > v3527:0 && sum~cons_1~v3557:0 = 1 + v3557:0 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (16) 69.22/24.20 Obligation: 69.22/24.20 Rules: 69.22/24.20 f_1012(v3516:0, sum~cons_1~v3557:0, v3527:0, v3530:0, v3539:0, v3541:0, v3538:0) -> f_1012(v3516:0, v3557:0, 1 + v3527:0, 1 + v3530:0, v3539:0, v3541:0, v3538:0) :|: v3538:0 > 2 && v3557:0 > 0 && v3516:0 > 3 && v3539:0 > 3 && v3527:0 > 2 && v3530:0 > 2 && v3541:0 > 3 && v3541:0 > v3527:0 && sum~cons_1~v3557:0 = 1 + v3557:0 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (17) IntTRSCompressionProof (EQUIVALENT) 69.22/24.20 Compressed rules. 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (18) 69.22/24.20 Obligation: 69.22/24.20 Rules: 69.22/24.20 f_1012(v3516:0:0, sum~cons_1~v3557:0:0, v3527:0:0, v3530:0:0, v3539:0:0, v3541:0:0, v3538:0:0) -> f_1012(v3516:0:0, v3557:0:0, 1 + v3527:0:0, 1 + v3530:0:0, v3539:0:0, v3541:0:0, v3538:0:0) :|: v3541:0:0 > 3 && v3541:0:0 > v3527:0:0 && v3530:0:0 > 2 && v3527:0:0 > 2 && v3539:0:0 > 3 && v3516:0:0 > 3 && v3557:0:0 > 0 && v3538:0:0 > 2 && sum~cons_1~v3557:0:0 = 1 + v3557:0:0 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (19) RankingReductionPairProof (EQUIVALENT) 69.22/24.20 Interpretation: 69.22/24.20 [ f_1012 ] = f_1012_2 69.22/24.20 69.22/24.20 The following rules are decreasing: 69.22/24.20 f_1012(v3516:0:0, sum~cons_1~v3557:0:0, v3527:0:0, v3530:0:0, v3539:0:0, v3541:0:0, v3538:0:0) -> f_1012(v3516:0:0, v3557:0:0, 1 + v3527:0:0, 1 + v3530:0:0, v3539:0:0, v3541:0:0, v3538:0:0) :|: v3541:0:0 > 3 && v3541:0:0 > v3527:0:0 && v3530:0:0 > 2 && v3527:0:0 > 2 && v3539:0:0 > 3 && v3516:0:0 > 3 && v3557:0:0 > 0 && v3538:0:0 > 2 && sum~cons_1~v3557:0:0 = 1 + v3557:0:0 69.22/24.20 69.22/24.20 The following rules are bounded: 69.22/24.20 f_1012(v3516:0:0, sum~cons_1~v3557:0:0, v3527:0:0, v3530:0:0, v3539:0:0, v3541:0:0, v3538:0:0) -> f_1012(v3516:0:0, v3557:0:0, 1 + v3527:0:0, 1 + v3530:0:0, v3539:0:0, v3541:0:0, v3538:0:0) :|: v3541:0:0 > 3 && v3541:0:0 > v3527:0:0 && v3530:0:0 > 2 && v3527:0:0 > 2 && v3539:0:0 > 3 && v3516:0:0 > 3 && v3557:0:0 > 0 && v3538:0:0 > 2 && sum~cons_1~v3557:0:0 = 1 + v3557:0:0 69.22/24.20 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (20) 69.22/24.20 YES 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (21) 69.22/24.20 Obligation: 69.22/24.20 SCC 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (22) SCC2IRS (SOUND) 69.22/24.20 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 69.22/24.20 Generated rules. Obtained 10 rulesP rules: 69.22/24.20 f_857(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_863(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: v1738 = 1 + v1662 && 4 <= v1738 69.22/24.20 f_863(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_870(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_870(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_876(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_876(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_882(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: v1864 != 0 && v1662 < v1673 && 4 <= v1673 69.22/24.20 f_882(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_889(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: 0 = 0 69.22/24.20 f_889(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_896(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_896(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1663, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_897(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1738, v1864, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1669, v1993, v1995, v1978, v1979, v1980, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_897(v1959, v1960, 1, v1962, v1963, v1964, v1965, v1966, v1967, 0, v1969, v1970, v1971, v1972, v1982, v1973, v1983, v1974, v1984, v1975, v1985, v1976, v1986, v1981, v1987, v1988, v1989, v1990, v1991, v1992, v1994, v1977, v1993, v1995, v1978, v1979, v1980, 3, 7, 2, 4, 8) -> f_905(v1959, v1960, 1, v1962, v1963, v1964, v1965, v1966, v1967, 0, v1969, v1970, v1971, v1972, v1982, v1973, v1983, v1974, v1984, v1975, v1985, v1976, v1986, v1981, v1987, v1988, v1989, v1990, v1991, v1992, v1994, v1977, v1993, v1995, v1978, v1979, v1980, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_905(v1959, v1960, 1, v1962, v1963, v1964, v1965, v1966, v1967, 0, v1969, v1970, v1971, v1972, v1982, v1973, v1983, v1974, v1984, v1975, v1985, v1976, v1986, v1981, v1987, v1988, v1989, v1990, v1991, v1992, v1994, v1977, v1993, v1995, v1978, v1979, v1980, 3, 7, 2, 4, 8) -> f_851(v1959, v1960, 1, v1962, v1963, v1964, v1965, v1966, v1967, 0, v1969, v1970, v1971, v1972, v1982, v1973, v1983, v1974, v1984, v1975, v1985, v1976, v1986, v1981, v1987, v1988, v1989, v1990, v1991, v1992, v1994, v1685, v1687, v1977, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: TRUE 69.22/24.20 f_851(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1661, v1662, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) -> f_857(v1651, v1652, 1, v1654, v1655, v1656, v1657, v1658, v1659, 0, v1662, v1663, v1664, v1674, v1665, v1675, v1666, v1676, v1667, v1677, v1668, v1678, v1673, v1679, v1680, v1681, v1682, v1683, v1684, v1686, v1661, v1685, v1687, v1669, v1670, v1671, v1672, 3, 7, 2, 4, 8) :|: 0 = 0 69.22/24.20 Combined rules. Obtained 2 rulesP rules: 69.22/24.20 f_857(v1651:0, v1652:0, 1, v1654:0, v1655:0, v1656:0, v1657:0, v1658:0, v1659:0, 0, v1662:0, v1663:0, v1664:0, v1674:0, v1665:0, v1675:0, v1666:0, v1676:0, v1667:0, v1677:0, v1668:0, v1678:0, v1673:0, v1679:0, v1680:0, v1681:0, v1682:0, v1683:0, v1684:0, v1686:0, v1661:0, v1685:0, v1687:0, v1669:0, v1670:0, v1671:0, v1672:0, 3, 7, 2, 4, 8) -> f_857(v1651:0, v1652:0, 1, v1654:0, v1655:0, v1656:0, v1657:0, v1658:0, v1659:0, 0, 1 + v1662:0, v1864:0, v1664:0, v1674:0, v1665:0, v1675:0, v1666:0, v1676:0, v1667:0, v1677:0, v1668:0, v1678:0, v1673:0, v1679:0, v1680:0, v1681:0, v1682:0, v1683:0, v1684:0, v1686:0, v1662:0, v1685:1, v1687:1, v1669:0, v1670:1, v1671:1, v1672:1, 3, 7, 2, 4, 8) :|: v1662:0 > 2 && v1673:0 > v1662:0 && v1673:0 > 3 && v1864:0 < 0 69.22/24.20 f_857(v1651:0, v1652:0, 1, v1654:0, v1655:0, v1656:0, v1657:0, v1658:0, v1659:0, 0, v1662:0, v1663:0, v1664:0, v1674:0, v1665:0, v1675:0, v1666:0, v1676:0, v1667:0, v1677:0, v1668:0, v1678:0, v1673:0, v1679:0, v1680:0, v1681:0, v1682:0, v1683:0, v1684:0, v1686:0, v1661:0, v1685:0, v1687:0, v1669:0, v1670:0, v1671:0, v1672:0, 3, 7, 2, 4, 8) -> f_857(v1651:0, v1652:0, 1, v1654:0, v1655:0, v1656:0, v1657:0, v1658:0, v1659:0, 0, 1 + v1662:0, v1864:0, v1664:0, v1674:0, v1665:0, v1675:0, v1666:0, v1676:0, v1667:0, v1677:0, v1668:0, v1678:0, v1673:0, v1679:0, v1680:0, v1681:0, v1682:0, v1683:0, v1684:0, v1686:0, v1662:0, v1685:1, v1687:1, v1669:0, v1670:1, v1671:1, v1672:1, 3, 7, 2, 4, 8) :|: v1662:0 > 2 && v1673:0 > v1662:0 && v1673:0 > 3 && v1864:0 > 0 69.22/24.20 Filtered unneeded arguments: 69.22/24.20 f_857(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_857(x11, x23) 69.22/24.20 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 69.22/24.20 f_857(v1662:0, v1673:0) -> f_857(1 + v1662:0, v1673:0) :|: v1673:0 > v1662:0 && v1673:0 > 3 && v1662:0 > 2 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (23) 69.22/24.20 Obligation: 69.22/24.20 Rules: 69.22/24.20 f_857(v1662:0, v1673:0) -> f_857(1 + v1662:0, v1673:0) :|: v1673:0 > v1662:0 && v1673:0 > 3 && v1662:0 > 2 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (24) IntTRSCompressionProof (EQUIVALENT) 69.22/24.20 Compressed rules. 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (25) 69.22/24.20 Obligation: 69.22/24.20 Rules: 69.22/24.20 f_857(v1662:0:0, v1673:0:0) -> f_857(1 + v1662:0:0, v1673:0:0) :|: v1673:0:0 > v1662:0:0 && v1673:0:0 > 3 && v1662:0:0 > 2 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (26) RankingReductionPairProof (EQUIVALENT) 69.22/24.20 Interpretation: 69.22/24.20 [ f_857 ] = f_857_2 + -1*f_857_1 69.22/24.20 69.22/24.20 The following rules are decreasing: 69.22/24.20 f_857(v1662:0:0, v1673:0:0) -> f_857(1 + v1662:0:0, v1673:0:0) :|: v1673:0:0 > v1662:0:0 && v1673:0:0 > 3 && v1662:0:0 > 2 69.22/24.20 69.22/24.20 The following rules are bounded: 69.22/24.20 f_857(v1662:0:0, v1673:0:0) -> f_857(1 + v1662:0:0, v1673:0:0) :|: v1673:0:0 > v1662:0:0 && v1673:0:0 > 3 && v1662:0:0 > 2 69.22/24.20 69.22/24.20 69.22/24.20 ---------------------------------------- 69.22/24.20 69.22/24.20 (27) 69.22/24.20 YES 69.33/24.25 EOF