25.55/7.32 YES 25.55/7.33 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 25.55/7.33 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 25.55/7.33 25.55/7.33 25.55/7.33 Termination of the given C Problem could be proven: 25.55/7.33 25.55/7.33 (0) C Problem 25.55/7.33 (1) CToLLVMProof [EQUIVALENT, 169 ms] 25.55/7.33 (2) LLVM problem 25.55/7.33 (3) LLVMToTerminationGraphProof [EQUIVALENT, 1559 ms] 25.55/7.33 (4) LLVM Symbolic Execution Graph 25.55/7.33 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 25.55/7.33 (6) AND 25.55/7.33 (7) LLVM Symbolic Execution SCC 25.55/7.33 (8) SCC2IRS [SOUND, 11 ms] 25.55/7.33 (9) IntTRS 25.55/7.33 (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] 25.55/7.33 (11) IntTRS 25.55/7.33 (12) RankingReductionPairProof [EQUIVALENT, 8 ms] 25.55/7.33 (13) YES 25.55/7.33 (14) LLVM Symbolic Execution SCC 25.55/7.33 (15) SCC2IRS [SOUND, 50 ms] 25.55/7.33 (16) IntTRS 25.55/7.33 (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] 25.55/7.33 (18) IntTRS 25.55/7.33 (19) RankingReductionPairProof [EQUIVALENT, 27 ms] 25.55/7.33 (20) YES 25.55/7.33 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (0) 25.55/7.33 Obligation: 25.55/7.33 c file /export/starexec/sandbox/benchmark/theBenchmark.c 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (1) CToLLVMProof (EQUIVALENT) 25.55/7.33 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (2) 25.55/7.33 Obligation: 25.55/7.33 LLVM Problem 25.55/7.33 25.55/7.33 Aliases: 25.55/7.33 25.55/7.33 Data layout: 25.55/7.33 25.55/7.33 "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" 25.55/7.33 25.55/7.33 Machine: 25.55/7.33 25.55/7.33 "x86_64-pc-linux-gnu" 25.55/7.33 25.55/7.33 Type definitions: 25.55/7.33 25.55/7.33 Global variables: 25.55/7.33 25.55/7.33 Function declarations and definitions: 25.55/7.33 25.55/7.33 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 25.55/7.33 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 25.55/7.33 0: 25.55/7.33 %1 = alloca i32, align 4 25.55/7.33 %x = alloca i32, align 4 25.55/7.33 %y = alloca i32, align 4 25.55/7.33 %z = alloca i32, align 4 25.55/7.33 store 0, %1 25.55/7.33 %2 = call i32 @__VERIFIER_nondet_int() 25.55/7.33 store %2, %y 25.55/7.33 %3 = call i32 @__VERIFIER_nondet_int() 25.55/7.33 store %3, %z 25.55/7.33 %4 = call i32 @__VERIFIER_nondet_int() 25.55/7.33 %5 = icmp ne %4 0 25.55/7.33 br %5, %6, %7 25.55/7.33 6: 25.55/7.33 store 1, %x 25.55/7.33 br %8 25.55/7.33 7: 25.55/7.33 store -1, %x 25.55/7.33 br %8 25.55/7.33 8: 25.55/7.33 %9 = load %x 25.55/7.33 %10 = icmp sgt %9 0 25.55/7.33 br %10, %11, %14 25.55/7.33 11: 25.55/7.33 %12 = load %x 25.55/7.33 %13 = add %12 1 25.55/7.33 store %13, %x 25.55/7.33 br %17 25.55/7.33 14: 25.55/7.33 %15 = load %x 25.55/7.33 %16 = sub %15 1 25.55/7.33 store %16, %x 25.55/7.33 br %17 25.55/7.33 17: 25.55/7.33 %18 = load %x 25.55/7.33 %19 = icmp sgt %18 0 25.55/7.33 br %19, %20, %23 25.55/7.33 20: 25.55/7.33 %21 = load %x 25.55/7.33 %22 = add %21 1 25.55/7.33 store %22, %x 25.55/7.33 br %26 25.55/7.33 23: 25.55/7.33 %24 = load %x 25.55/7.33 %25 = sub %24 1 25.55/7.33 store %25, %x 25.55/7.33 br %26 25.55/7.33 26: 25.55/7.33 %27 = load %x 25.55/7.33 %28 = icmp sgt %27 0 25.55/7.33 br %28, %29, %32 25.55/7.33 29: 25.55/7.33 %30 = load %x 25.55/7.33 %31 = add %30 1 25.55/7.33 store %31, %x 25.55/7.33 br %35 25.55/7.33 32: 25.55/7.33 %33 = load %x 25.55/7.33 %34 = sub %33 1 25.55/7.33 store %34, %x 25.55/7.33 br %35 25.55/7.33 35: 25.55/7.33 %36 = load %x 25.55/7.33 %37 = icmp sgt %36 0 25.55/7.33 br %37, %38, %41 25.55/7.33 38: 25.55/7.33 %39 = load %x 25.55/7.33 %40 = add %39 1 25.55/7.33 store %40, %x 25.55/7.33 br %44 25.55/7.33 41: 25.55/7.33 %42 = load %x 25.55/7.33 %43 = sub %42 1 25.55/7.33 store %43, %x 25.55/7.33 br %44 25.55/7.33 44: 25.55/7.33 %45 = load %x 25.55/7.33 %46 = icmp sgt %45 0 25.55/7.33 br %46, %47, %50 25.55/7.33 47: 25.55/7.33 %48 = load %x 25.55/7.33 %49 = add %48 1 25.55/7.33 store %49, %x 25.55/7.33 br %53 25.55/7.33 50: 25.55/7.33 %51 = load %x 25.55/7.33 %52 = sub %51 1 25.55/7.33 store %52, %x 25.55/7.33 br %53 25.55/7.33 53: 25.55/7.33 %54 = load %x 25.55/7.33 %55 = icmp sgt %54 0 25.55/7.33 br %55, %56, %59 25.55/7.33 56: 25.55/7.33 %57 = load %x 25.55/7.33 %58 = add %57 1 25.55/7.33 store %58, %x 25.55/7.33 br %62 25.55/7.33 59: 25.55/7.33 %60 = load %x 25.55/7.33 %61 = sub %60 1 25.55/7.33 store %61, %x 25.55/7.33 br %62 25.55/7.33 62: 25.55/7.33 %63 = load %x 25.55/7.33 %64 = icmp sgt %63 0 25.55/7.33 br %64, %65, %68 25.55/7.33 65: 25.55/7.33 %66 = load %x 25.55/7.33 %67 = add %66 1 25.55/7.33 store %67, %x 25.55/7.33 br %71 25.55/7.33 68: 25.55/7.33 %69 = load %x 25.55/7.33 %70 = sub %69 1 25.55/7.33 store %70, %x 25.55/7.33 br %71 25.55/7.33 71: 25.55/7.33 %72 = load %x 25.55/7.33 %73 = icmp sgt %72 0 25.55/7.33 br %73, %74, %77 25.55/7.33 74: 25.55/7.33 %75 = load %x 25.55/7.33 %76 = add %75 1 25.55/7.33 store %76, %x 25.55/7.33 br %80 25.55/7.33 77: 25.55/7.33 %78 = load %x 25.55/7.33 %79 = sub %78 1 25.55/7.33 store %79, %x 25.55/7.33 br %80 25.55/7.33 80: 25.55/7.33 br %81 25.55/7.33 81: 25.55/7.33 %82 = load %y 25.55/7.33 %83 = icmp slt %82 100 25.55/7.33 br %83, %84, %87 25.55/7.33 84: 25.55/7.33 %85 = load %z 25.55/7.33 %86 = icmp slt %85 100 25.55/7.33 br %87 25.55/7.33 87: 25.55/7.33 %88 = phi [0, %81], [%86, %84] 25.55/7.33 br %88, %89, %96 25.55/7.33 89: 25.55/7.33 %90 = load %y 25.55/7.33 %91 = load %x 25.55/7.33 %92 = add %90 %91 25.55/7.33 store %92, %y 25.55/7.33 %93 = load %z 25.55/7.33 %94 = load %x 25.55/7.33 %95 = sub %93 %94 25.55/7.33 store %95, %z 25.55/7.33 br %81 25.55/7.33 96: 25.55/7.33 ret 0 25.55/7.33 25.55/7.33 25.55/7.33 Analyze Termination of all function calls matching the pattern: 25.55/7.33 main() 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (3) LLVMToTerminationGraphProof (EQUIVALENT) 25.55/7.33 Constructed symbolic execution graph for LLVM program and proved memory safety. 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (4) 25.55/7.33 Obligation: 25.55/7.33 SE Graph 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (5) SymbolicExecutionGraphToSCCProof (SOUND) 25.55/7.33 Splitted symbolic execution graph to 2 SCCs. 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (6) 25.55/7.33 Complex Obligation (AND) 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (7) 25.55/7.33 Obligation: 25.55/7.33 SCC 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (8) SCC2IRS (SOUND) 25.55/7.33 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.55/7.33 Generated rules. Obtained 18 rulesP rules: 25.55/7.33 f_648(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v957, v955, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) -> f_651(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v957, v955, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) :|: 0 = 0 25.55/7.33 f_651(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v957, v955, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) -> f_654(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v957, v955, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) :|: TRUE 25.55/7.33 f_654(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v957, v955, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) -> f_657(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) :|: 0 = 0 25.55/7.33 f_657(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) -> f_660(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) :|: v959 < 100 && v957 <= 90 25.55/7.33 f_660(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) -> f_663(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) :|: 0 = 0 25.55/7.33 f_663(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) -> f_666(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) :|: 0 = 0 25.55/7.33 f_666(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) -> f_669(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) :|: TRUE 25.55/7.33 f_669(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v955, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) -> f_672(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) :|: 0 = 0 25.55/7.33 f_672(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) -> f_674(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) :|: 0 = 0 25.55/7.33 f_674(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4) -> f_676(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) :|: 9 + v1269 = v958 && v1269 <= 81 25.55/7.33 f_676(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) -> f_678(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) :|: TRUE 25.55/7.33 f_678(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v957, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) -> f_680(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) :|: 0 = 0 25.55/7.33 f_680(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) -> f_682(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) :|: 0 = 0 25.55/7.33 f_682(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81) -> f_684(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81, 108) :|: v1273 = 9 + v959 && v1273 <= 108 25.55/7.33 f_684(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81, 108) -> f_686(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81, 108) :|: TRUE 25.55/7.33 f_686(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81, 108) -> f_688(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81, 108) :|: TRUE 25.55/7.33 f_688(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 4, 81, 108) -> f_646(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v959, v1269, v1273, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) :|: TRUE 25.55/7.33 f_646(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v955, 1, v957, v958, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) -> f_648(v939, v940, v941, v942, v943, v944, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v958, 1, v957, v955, v959, v960, v961, v962, v963, 3, 9, 99, 90, 108, 4) :|: 0 = 0 25.55/7.33 Combined rules. Obtained 1 rulesP rules: 25.55/7.33 f_648(v939:0, v940:0, v941:0, v942:0, v943:0, v944:0, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, 9 + v1269:0, 1, v957:0, v955:0, v959:0, v960:0, v961:0, v962:0, v963:0, 3, 9, 99, 90, 108, 4) -> f_648(v939:0, v940:0, v941:0, v942:0, v943:0, v944:0, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, v1269:0, 1, v959:0, 9 + v1269:0, 9 + v959:0, v960:0, v961:0, v962:0, v963:0, 3, 9, 99, 90, 108, 4) :|: v957:0 < 91 && v959:0 < 100 && v1269:0 < 82 25.55/7.33 Filtered unneeded arguments: 25.55/7.33 f_648(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) -> f_648(x17, x19, x21) 25.55/7.33 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 25.55/7.33 f_648(sum~cons_9~v1269:0, v957:0, v959:0) -> f_648(v1269:0, v959:0, 9 + v959:0) :|: v959:0 < 100 && v1269:0 < 82 && v957:0 < 91 && sum~cons_9~v1269:0 = 9 + v1269:0 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (9) 25.55/7.33 Obligation: 25.55/7.33 Rules: 25.55/7.33 f_648(sum~cons_9~v1269:0, v957:0, v959:0) -> f_648(v1269:0, v959:0, 9 + v959:0) :|: v959:0 < 100 && v1269:0 < 82 && v957:0 < 91 && sum~cons_9~v1269:0 = 9 + v1269:0 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (10) IntTRSCompressionProof (EQUIVALENT) 25.55/7.33 Compressed rules. 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (11) 25.55/7.33 Obligation: 25.55/7.33 Rules: 25.55/7.33 f_648(sum~cons_9~v1269:0:0, v957:0:0, v959:0:0) -> f_648(v1269:0:0, v959:0:0, 9 + v959:0:0) :|: v959:0:0 < 100 && v1269:0:0 < 82 && v957:0:0 < 91 && sum~cons_9~v1269:0:0 = 9 + v1269:0:0 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (12) RankingReductionPairProof (EQUIVALENT) 25.55/7.33 Interpretation: 25.55/7.33 [ f_648 ] = -1/9*f_648_3 25.55/7.33 25.55/7.33 The following rules are decreasing: 25.55/7.33 f_648(sum~cons_9~v1269:0:0, v957:0:0, v959:0:0) -> f_648(v1269:0:0, v959:0:0, 9 + v959:0:0) :|: v959:0:0 < 100 && v1269:0:0 < 82 && v957:0:0 < 91 && sum~cons_9~v1269:0:0 = 9 + v1269:0:0 25.55/7.33 25.55/7.33 The following rules are bounded: 25.55/7.33 f_648(sum~cons_9~v1269:0:0, v957:0:0, v959:0:0) -> f_648(v1269:0:0, v959:0:0, 9 + v959:0:0) :|: v959:0:0 < 100 && v1269:0:0 < 82 && v957:0:0 < 91 && sum~cons_9~v1269:0:0 = 9 + v1269:0:0 25.55/7.33 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (13) 25.55/7.33 YES 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (14) 25.55/7.33 Obligation: 25.55/7.33 SCC 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (15) SCC2IRS (SOUND) 25.55/7.33 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.55/7.33 Generated rules. Obtained 18 rulesP rules: 25.55/7.33 f_647(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 108, 90) -> f_649(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 90) :|: v909 < 100 && v907 <= 90 25.55/7.33 f_649(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 90) -> f_652(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 90) :|: 0 = 0 25.55/7.33 f_652(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 90) -> f_655(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 90) :|: TRUE 25.55/7.33 f_655(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 90) -> f_658(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) :|: 0 = 0 25.55/7.33 f_658(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) -> f_662(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) :|: 0 = 0 25.55/7.33 f_662(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) -> f_665(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) :|: 0 = 0 25.55/7.33 f_665(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) -> f_668(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) :|: TRUE 25.55/7.33 f_668(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v907, v908, v911, v912, v913, v914, 0, 99, 90) -> f_671(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v908, v911, v912, v913, v914, 0, 99, 90) :|: 0 = 0 25.55/7.33 f_671(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v908, v911, v912, v913, v914, 0, 99, 90) -> f_673(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v908, v911, v912, v913, v914, 0, 99, 90) :|: 0 = 0 25.55/7.33 f_673(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v908, v911, v912, v913, v914, 0, 99, 90) -> f_675(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v908, v911, v912, v913, v914, 0, 99, 90, 108) :|: v1268 = 9 + v909 && v1268 <= 108 25.55/7.33 f_675(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v908, v911, v912, v913, v914, 0, 99, 90, 108) -> f_677(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v908, v911, v912, v913, v914, 0, 99, 90, 108) :|: TRUE 25.55/7.33 f_677(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v908, v911, v912, v913, v914, 0, 99, 90, 108) -> f_679(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v911, v912, v913, v914, 0, 99, 90, 108) :|: 0 = 0 25.55/7.33 f_679(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v911, v912, v913, v914, 0, 99, 90, 108) -> f_681(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v911, v912, v913, v914, 0, 99, 90, 108) :|: 0 = 0 25.55/7.33 f_681(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v911, v912, v913, v914, 0, 99, 90, 108) -> f_683(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 90, 108, 81) :|: 9 + v1272 = v910 && v1272 <= 81 25.55/7.33 f_683(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 90, 108, 81) -> f_685(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 90, 108, 81) :|: TRUE 25.55/7.33 f_685(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 90, 108, 81) -> f_687(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 90, 108, 81) :|: TRUE 25.55/7.33 f_687(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 90, 108, 81) -> f_644(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v910, v1268, v1272, v911, v912, v913, v914, 0, 99, 108, 90) :|: TRUE 25.55/7.33 f_644(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v907, v908, v909, v910, v911, v912, v913, v914, 0, 99, 108, 90) -> f_647(v891, v892, v893, v894, v895, v896, v897, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909, v908, v907, v910, v911, v912, v913, v914, 0, 99, 108, 90) :|: 0 = 0 25.55/7.33 Combined rules. Obtained 1 rulesP rules: 25.55/7.33 f_647(v891:0, v892:0, v893:0, v894:0, v895:0, v896:0, v897:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, v909:0, v908:0, v907:0, 9 + v1272:0, v911:0, v912:0, v913:0, v914:0, 0, 99, 108, 90) -> f_647(v891:0, v892:0, v893:0, v894:0, v895:0, v896:0, v897:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9 + v909:0, 9 + v1272:0, v909:0, v1272:0, v911:0, v912:0, v913:0, v914:0, 0, 99, 108, 90) :|: v907:0 < 91 && v909:0 < 100 && v1272:0 < 82 25.55/7.33 Filtered unneeded arguments: 25.55/7.33 f_647(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) -> f_647(x17, x19, x20) 25.55/7.33 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 25.55/7.33 f_647(v909:0, v907:0, sum~cons_9~v1272:0) -> f_647(9 + v909:0, v909:0, v1272:0) :|: v909:0 < 100 && v1272:0 < 82 && v907:0 < 91 && sum~cons_9~v1272:0 = 9 + v1272:0 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (16) 25.55/7.33 Obligation: 25.55/7.33 Rules: 25.55/7.33 f_647(v909:0, v907:0, sum~cons_9~v1272:0) -> f_647(9 + v909:0, v909:0, v1272:0) :|: v909:0 < 100 && v1272:0 < 82 && v907:0 < 91 && sum~cons_9~v1272:0 = 9 + v1272:0 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (17) IntTRSCompressionProof (EQUIVALENT) 25.55/7.33 Compressed rules. 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (18) 25.55/7.33 Obligation: 25.55/7.33 Rules: 25.55/7.33 f_647(v909:0:0, v907:0:0, sum~cons_9~v1272:0:0) -> f_647(9 + v909:0:0, v909:0:0, v1272:0:0) :|: v909:0:0 < 100 && v1272:0:0 < 82 && v907:0:0 < 91 && sum~cons_9~v1272:0:0 = 9 + v1272:0:0 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (19) RankingReductionPairProof (EQUIVALENT) 25.55/7.33 Interpretation: 25.55/7.33 [ f_647 ] = -1/9*f_647_1 25.55/7.33 25.55/7.33 The following rules are decreasing: 25.55/7.33 f_647(v909:0:0, v907:0:0, sum~cons_9~v1272:0:0) -> f_647(9 + v909:0:0, v909:0:0, v1272:0:0) :|: v909:0:0 < 100 && v1272:0:0 < 82 && v907:0:0 < 91 && sum~cons_9~v1272:0:0 = 9 + v1272:0:0 25.55/7.33 25.55/7.33 The following rules are bounded: 25.55/7.33 f_647(v909:0:0, v907:0:0, sum~cons_9~v1272:0:0) -> f_647(9 + v909:0:0, v909:0:0, v1272:0:0) :|: v909:0:0 < 100 && v1272:0:0 < 82 && v907:0:0 < 91 && sum~cons_9~v1272:0:0 = 9 + v1272:0:0 25.55/7.33 25.55/7.33 25.55/7.33 ---------------------------------------- 25.55/7.33 25.55/7.33 (20) 25.55/7.33 YES 25.81/7.37 EOF