/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 175 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 4298 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 57 ms] (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] (11) IntTRS (12) RankingReductionPairProof [EQUIVALENT, 69 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 0 ms] (16) IntTRS (17) IntTRSCompressionProof [EQUIVALENT, 1 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 14 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 8 ms] (23) IntTRS (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] (25) IntTRS (26) RankingReductionPairProof [EQUIVALENT, 0 ms] (27) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %tx = alloca i32, align 4 %x = alloca i32, align 4 %y = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %tx %3 = call i32 @__VERIFIER_nondet_int() store %3, %x %4 = call i32 @__VERIFIER_nondet_int() store %4, %y br %5 5: %6 = load %x %7 = load %y %8 = icmp sge %6 %7 br %8, %9, %12 9: %10 = load %tx %11 = icmp sge %10 0 br %12 12: %13 = phi [0, %5], [%11, %9] br %13, %14, %28 14: %15 = call i32 @__VERIFIER_nondet_int() %16 = icmp ne %15 0 br %16, %17, %22 17: %18 = load %x %19 = sub %18 1 %20 = load %tx %21 = sub %19 %20 store %21, %x br %27 22: %23 = load %y %24 = add %23 1 %25 = load %tx %26 = add %24 %25 store %26, %y br %27 27: br %5 28: ret 0 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 3 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 52 rulesP rules: f_489(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) -> f_490(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_490(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) -> f_491(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_491(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_492(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2610 <= v2603 f_492(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_494(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_494(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_496(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_496(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_498(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_498(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_500(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_500(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_501(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_501(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_502(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_502(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_503(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_503(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_504(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2936 != 0 f_503(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_505(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2936 = 0 f_504(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_506(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) :|: 0 = 0 f_506(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) -> f_508(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) :|: TRUE f_508(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) -> f_509(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) :|: v2602 <= v2601 && v2604 <= v2607 && v2604 <= v2603 && v2610 <= v2603 && 1 <= v2596 && 1 <= v2597 && 1 <= v2598 && 1 <= v2599 && 0 <= v2600 && 4 <= v2611 && 4 <= v2612 && 4 <= v2613 && 4 <= v2614 && v2596 <= v2611 && v2597 <= v2612 && v2598 <= v2613 && v2599 <= v2614 f_509(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2974, v2975, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_512(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2975, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: 0 = 0 f_512(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2975, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_514(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: 1 + v3028 = v2970 f_514(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_516(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: 0 = 0 f_516(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_518(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: v3030 + v2967 = v3028 f_518(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_520(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: TRUE f_520(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_522(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: TRUE f_522(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_523(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2976, v2977, v3028, v3030, v2978, v2979, v2980, v2981, 0, 3, 4) :|: v2969 <= v2968 && v2976 <= v2970 && v2971 <= v2970 && 1 <= v2963 && 1 <= v2964 && 1 <= v2965 && 1 <= v2966 && 0 <= v2967 && 4 <= v2978 && 4 <= v2979 && 4 <= v2980 && 4 <= v2981 && v2963 <= v2978 && v2964 <= v2979 && v2965 <= v2980 && v2966 <= v2981 f_523(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, 1, v3068, v3069, v3070, v3071, v3072, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_525(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, 1, v3068, v3069, v3070, v3071, v3072, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_525(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, 1, v3068, v3069, v3070, v3071, v3072, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_526(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_526(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_527(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_527(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_528(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: v3066 <= v3072 f_528(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_530(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_530(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_532(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_532(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_534(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_534(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_536(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_536(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_537(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_537(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_538(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_538(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_539(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_539(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_540(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: v3453 != 0 f_539(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_541(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: v3453 = 0 f_540(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_542(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_542(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_544(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_544(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_509(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3065, v3071, v3069, v3070, v3073, v3074, v3075, v3076, 0, 3, 4) :|: v3064 <= v3063 && v3069 <= v3065 && v3069 <= v3072 && v3066 <= v3072 && 1 <= v3058 && 1 <= v3059 && 1 <= v3060 && 1 <= v3061 && 0 <= v3062 && 4 <= v3073 && 4 <= v3074 && 4 <= v3075 && 4 <= v3076 && v3058 <= v3073 && v3059 <= v3074 && v3060 <= v3075 && v3061 <= v3076 f_541(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_543(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: 0 = 0 f_543(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_545(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: TRUE f_545(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_511(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: v3064 <= v3063 && v3069 <= v3065 && v3066 <= v3065 && v3066 <= v3072 && 1 <= v3058 && 1 <= v3059 && 1 <= v3060 && 1 <= v3061 && 0 <= v3062 && 4 <= v3073 && 4 <= v3074 && 4 <= v3075 && 4 <= v3076 && v3058 <= v3073 && v3059 <= v3074 && v3060 <= v3075 && v3061 <= v3076 f_511(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3020, v3021, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_513(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3021, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: 0 = 0 f_513(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3021, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_515(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: v3029 = 1 + v3017 f_515(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_517(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: 0 = 0 f_517(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_519(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: v3031 = v3029 + v3013 f_519(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_521(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: TRUE f_521(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_524(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: TRUE f_524(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_488(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3022, v3023, v3029, v3031, v3024, v3025, v3026, v3027, 3, 4) :|: v3015 <= v3014 && v3017 <= v3022 && v3017 <= v3016 && 1 <= v3009 && 1 <= v3010 && 1 <= v3011 && 1 <= v3012 && 0 <= v3013 && 4 <= v3024 && 4 <= v3025 && 4 <= v3026 && 4 <= v3027 && v3009 <= v3024 && v3010 <= v3025 && v3011 <= v3026 && v3012 <= v3027 f_488(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) -> f_489(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_505(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_507(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_507(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_510(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_510(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_511(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2604, v2609, v2607, v2608, v2611, v2612, v2613, v2614, 3, 4) :|: v2602 <= v2601 && v2604 <= v2607 && v2610 <= v2607 && v2610 <= v2603 && 1 <= v2596 && 1 <= v2597 && 1 <= v2598 && 1 <= v2599 && 0 <= v2600 && 4 <= v2611 && 4 <= v2612 && 4 <= v2613 && 4 <= v2614 && v2596 <= v2611 && v2597 <= v2612 && v2598 <= v2613 && v2599 <= v2614 Combined rules. Obtained 6 rulesP rules: f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, 1, 0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_489(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, 1, 0, v3065:0, v3071:0, 1 + v3066:0, 1 + v3066:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0, 3, 4) :|: v3069:0 <= v3065:0 && v3064:0 <= v3063:0 && v3066:0 <= v3065:0 && v3072:0 >= v3066:0 && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3075:0 >= v3060:0 && v3076:0 >= v3061:0 f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2604:0, 1, 0, v2607:0, v2608:0, v2609:0, v2610:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, 1, 0, v2607:0, v2608:0, 1 + v2610:0, 1 + v2610:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) :|: v2607:0 >= v2604:0 && v2602:0 <= v2601:0 && v2610:0 <= v2607:0 && v2610:0 <= v2603:0 && v2596:0 > 0 && v2597:0 > 0 && v2598:0 > 0 && v2599:0 > 0 && v2600:0 > -1 && v2611:0 > 3 && v2612:0 > 3 && v2613:0 > 3 && v2614:0 > 3 && v2611:0 >= v2596:0 && v2612:0 >= v2597:0 && v2613:0 >= v2598:0 && v2614:0 >= v2599:0 f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, 1 + (v3030:0 + v2600:0), v2604:0, 1, 0, v2607:0, v2608:0, v2609:0, v2610:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_539(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v3030:0, v2610:0, 1, v3453:0, v2604:0, v2609:0, 1 + (v3030:0 + v2600:0), v3030:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0, 0, 3, 4) :|: v2607:0 >= v2604:0 && v2602:0 <= v2601:0 && v2604:0 <= 1 + (v3030:0 + v2600:0) && v2610:0 <= 1 + (v3030:0 + v2600:0) && v2596:0 > 0 && v2597:0 > 0 && v2598:0 > 0 && v2599:0 > 0 && v2600:0 > -1 && v2611:0 > 3 && v2612:0 > 3 && v2613:0 > 3 && v2614:0 > 3 && v2611:0 >= v2596:0 && v2612:0 >= v2597:0 && v2936:0 < 0 && v2613:0 >= v2598:0 && v2614:0 >= v2599:0 && v3030:0 >= v2610:0 f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, 1 + (v3030:0 + v2600:0), v2604:0, 1, 0, v2607:0, v2608:0, v2609:0, v2610:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_539(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v3030:0, v2610:0, 1, v3453:0, v2604:0, v2609:0, 1 + (v3030:0 + v2600:0), v3030:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0, 0, 3, 4) :|: v2607:0 >= v2604:0 && v2602:0 <= v2601:0 && v2604:0 <= 1 + (v3030:0 + v2600:0) && v2610:0 <= 1 + (v3030:0 + v2600:0) && v2596:0 > 0 && v2597:0 > 0 && v2598:0 > 0 && v2599:0 > 0 && v2600:0 > -1 && v2611:0 > 3 && v2612:0 > 3 && v2613:0 > 3 && v2614:0 > 3 && v2611:0 >= v2596:0 && v2612:0 >= v2597:0 && v2936:0 > 0 && v2613:0 >= v2598:0 && v2614:0 >= v2599:0 && v3030:0 >= v2610:0 f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, 1 + (v3030:0 + v3062:0), v3066:0, 1, v3453:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3030:0, v3066:0, 1, v3453:1, v3069:0, v3070:0, 1 + (v3030:0 + v3062:0), v3030:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) :|: v3069:0 <= v3065:0 && v3064:0 <= v3063:0 && v3069:0 <= 1 + (v3030:0 + v3062:0) && v3066:0 <= 1 + (v3030:0 + v3062:0) && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3075:0 >= v3060:0 && v3076:0 >= v3061:0 && v3453:0 < 0 && v3066:0 <= v3030:0 f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, 1 + (v3030:0 + v3062:0), v3066:0, 1, v3453:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3030:0, v3066:0, 1, v3453:1, v3069:0, v3070:0, 1 + (v3030:0 + v3062:0), v3030:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) :|: v3069:0 <= v3065:0 && v3064:0 <= v3063:0 && v3069:0 <= 1 + (v3030:0 + v3062:0) && v3066:0 <= 1 + (v3030:0 + v3062:0) && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3075:0 >= v3060:0 && v3076:0 >= v3061:0 && v3453:0 > 0 && v3066:0 <= v3030:0 Filtered unneeded arguments: f_539(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_539(x1, x2, x3, x4, x5, x6, x7, x8, x9, x11, x12, x14, x16, x17, x18, x19) f_489(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_489(x1, x2, x3, x4, x5, x6, x7, x8, x9, x12, x15, x16, x17, x18, x19) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, cons_0, v3069:0, v3065:0, v3073:0, v3074:0, v3075:0, v3076:0) -> f_489(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, v3065:0, 1 + v3066:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0) :|: v3064:0 <= v3063:0 && v3069:0 <= v3065:0 && v3066:0 <= v3065:0 && v3072:0 >= v3066:0 && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3076:0 >= v3061:0 && v3075:0 >= v3060:0 && cons_0 = 0 f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2604:0, v2607:0, v2610:0, v2611:0, v2612:0, v2613:0, v2614:0) -> f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, v2607:0, 1 + v2610:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0) :|: v2602:0 <= v2601:0 && v2607:0 >= v2604:0 && v2610:0 <= v2607:0 && v2610:0 <= v2603:0 && v2596:0 > 0 && v2597:0 > 0 && v2598:0 > 0 && v2599:0 > 0 && v2600:0 > -1 && v2611:0 > 3 && v2612:0 > 3 && v2613:0 > 3 && v2614:0 > 3 && v2611:0 >= v2596:0 && v2612:0 >= v2597:0 && v2614:0 >= v2599:0 && v2613:0 >= v2598:0 f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, sum~cons_1~sum~v3030:0~v2600:0, v2604:0, v2607:0, v2610:0, v2611:0, v2612:0, v2613:0, v2614:0) -> f_539(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v3030:0, v2610:0, v3453:0, v2604:0, 1 + (v3030:0 + v2600:0), v2611:0, v2612:0, v2613:0, v2614:0) :|: v2602:0 <= v2601:0 && v2607:0 >= v2604:0 && v2604:0 <= 1 + (v3030:0 + v2600:0) && v2610:0 <= 1 + (v3030:0 + v2600:0) && v2596:0 > 0 && v2597:0 > 0 && v2598:0 > 0 && v2599:0 > 0 && v2600:0 > -1 && v2611:0 > 3 && v2612:0 > 3 && v2613:0 > 3 && v2614:0 > 3 && v2611:0 >= v2596:0 && v2612:0 >= v2597:0 && v2613:0 >= v2598:0 && v3030:0 >= v2610:0 && v2614:0 >= v2599:0 && sum~cons_1~sum~v3030:0~v2600:0 = 1 + (v3030:0 + v2600:0) f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, sum~cons_1~sum~v3030:0~v3062:0, v3066:0, v3453:0, v3069:0, v3065:0, v3073:0, v3074:0, v3075:0, v3076:0) -> f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3030:0, v3066:0, v3453:1, v3069:0, 1 + (v3030:0 + v3062:0), v3073:0, v3074:0, v3075:0, v3076:0) :|: v3064:0 <= v3063:0 && v3069:0 <= v3065:0 && v3069:0 <= 1 + (v3030:0 + v3062:0) && v3066:0 <= 1 + (v3030:0 + v3062:0) && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3075:0 >= v3060:0 && v3076:0 >= v3061:0 && v3066:0 <= v3030:0 && v3453:0 < 0 && sum~cons_1~sum~v3030:0~v3062:0 = 1 + (v3030:0 + v3062:0) f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, sum~cons_1~sum~v3030:0~v3062:0, v3066:0, v3453:0, v3069:0, v3065:0, v3073:0, v3074:0, v3075:0, v3076:0) -> f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3030:0, v3066:0, v3453:1, v3069:0, 1 + (v3030:0 + v3062:0), v3073:0, v3074:0, v3075:0, v3076:0) :|: v3064:0 <= v3063:0 && v3069:0 <= v3065:0 && v3069:0 <= 1 + (v3030:0 + v3062:0) && v3066:0 <= 1 + (v3030:0 + v3062:0) && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3075:0 >= v3060:0 && v3076:0 >= v3061:0 && v3066:0 <= v3030:0 && v3453:0 > 0 && sum~cons_1~sum~v3030:0~v3062:0 = 1 + (v3030:0 + v3062:0) ---------------------------------------- (9) Obligation: Rules: f_539(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, cons_0, v3069:0, v3065:0, v3073:0, v3074:0, v3075:0, v3076:0) -> f_489(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, v3065:0, 1 + v3066:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0) :|: v3064:0 <= v3063:0 && v3069:0 <= v3065:0 && v3066:0 <= v3065:0 && v3072:0 >= v3066:0 && v3058:0 > 0 && v3059:0 > 0 && v3060:0 > 0 && v3061:0 > 0 && v3062:0 > -1 && v3073:0 > 3 && v3074:0 > 3 && v3075:0 > 3 && v3076:0 > 3 && v3073:0 >= v3058:0 && v3074:0 >= v3059:0 && v3076:0 >= v3061:0 && v3075:0 >= v3060:0 && cons_0 = 0 f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2604:0, v2607:0, v2610:0, v2611:0, v2612:0, v2613:0, v2614:0) -> f_489(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, v2607:0, 1 + v2610:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0) :|: v2602:0 <= v2601:0 && v2607:0 >= v2604:0 && v2610:0 <= v2607:0 && v2610:0 <= v2603:0 && v2596:0 > 0 && v2597:0 > 0 && v2598:0 > 0 && v2599:0 > 0 && v2600:0 > -1 && v2611:0 > 3 && v2612:0 > 3 && v2613:0 > 3 && v2614:0 > 3 && v2611:0 >= v2596:0 && v2612:0 >= v2597:0 && v2614:0 >= v2599:0 && v2613:0 >= v2598:0 f_489(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_539(x, x1, x2, x3, x4, x5, x6, x15, x10, x16, x8, 1 + (x15 + x4), x11, x12, x13, x14) :|: x6 <= x5 && x9 >= x8 && x8 <= 1 + (x15 + x4) && x10 <= 1 + (x15 + x4) && x > 0 && x1 > 0 && x2 > 0 && x3 > 0 && x4 > -1 && x11 > 3 && x12 > 3 && x13 > 3 && x14 > 3 && x11 >= x && x12 >= x1 && x13 >= x2 && x15 >= x10 && x14 >= x3 && x7 = 1 + (x15 + x4) f_539(x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32) -> f_539(x17, x18, x19, x20, x21, x22, x23, x33, x25, x34, x27, 1 + (x33 + x21), x29, x30, x31, x32) :|: x23 <= x22 && x27 <= x28 && x27 <= 1 + (x33 + x21) && x25 <= 1 + (x33 + x21) && x17 > 0 && x18 > 0 && x19 > 0 && x20 > 0 && x21 > -1 && x29 > 3 && x30 > 3 && x31 > 3 && x32 > 3 && x29 >= x17 && x30 >= x18 && x31 >= x19 && x32 >= x20 && x25 <= x33 && x26 < 0 && x24 = 1 + (x33 + x21) f_539(x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50) -> f_539(x35, x36, x37, x38, x39, x40, x41, x51, x43, x52, x45, 1 + (x51 + x39), x47, x48, x49, x50) :|: x41 <= x40 && x45 <= x46 && x45 <= 1 + (x51 + x39) && x43 <= 1 + (x51 + x39) && x35 > 0 && x36 > 0 && x37 > 0 && x38 > 0 && x39 > -1 && x47 > 3 && x48 > 3 && x49 > 3 && x50 > 3 && x47 >= x35 && x48 >= x36 && x49 >= x37 && x50 >= x38 && x43 <= x51 && x44 > 0 && x42 = 1 + (x51 + x39) ---------------------------------------- (10) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: f_539(x17:0, x18:0, x19:0, x20:0, x21:0, x22:0, x23:0, sum~cons_1~sum~x33:0~x21:0, x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0) -> f_539(x17:0, x18:0, x19:0, x20:0, x21:0, x22:0, x23:0, x33:0, x25:0, x34:0, x27:0, 1 + (x33:0 + x21:0), x29:0, x30:0, x31:0, x32:0) :|: x33:0 >= x25:0 && x26:0 < 0 && x32:0 >= x20:0 && x31:0 >= x19:0 && x30:0 >= x18:0 && x29:0 >= x17:0 && x32:0 > 3 && x31:0 > 3 && x30:0 > 3 && x29:0 > 3 && x21:0 > -1 && x20:0 > 0 && x19:0 > 0 && x18:0 > 0 && x17:0 > 0 && x25:0 <= 1 + (x33:0 + x21:0) && x27:0 <= 1 + (x33:0 + x21:0) && x28:0 >= x27:0 && x23:0 <= x22:0 && sum~cons_1~sum~x33:0~x21:0 = 1 + (x33:0 + x21:0) f_489(v2596:0:0, v2597:0:0, v2598:0:0, v2599:0:0, v2600:0:0, v2601:0:0, v2602:0:0, v2603:0:0, v2604:0:0, v2607:0:0, v2610:0:0, v2611:0:0, v2612:0:0, v2613:0:0, v2614:0:0) -> f_489(v2596:0:0, v2597:0:0, v2598:0:0, v2599:0:0, v2600:0:0, v2601:0:0, v2602:0:0, v2603:0:0, v2610:0:0, v2607:0:0, 1 + v2610:0:0 + v2600:0:0, v2611:0:0, v2612:0:0, v2613:0:0, v2614:0:0) :|: v2614:0:0 >= v2599:0:0 && v2613:0:0 >= v2598:0:0 && v2612:0:0 >= v2597:0:0 && v2611:0:0 >= v2596:0:0 && v2614:0:0 > 3 && v2613:0:0 > 3 && v2612:0:0 > 3 && v2611:0:0 > 3 && v2600:0:0 > -1 && v2599:0:0 > 0 && v2598:0:0 > 0 && v2597:0:0 > 0 && v2596:0:0 > 0 && v2610:0:0 <= v2603:0:0 && v2610:0:0 <= v2607:0:0 && v2607:0:0 >= v2604:0:0 && v2602:0:0 <= v2601:0:0 f_489(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0, sum~cons_1~sum~x15:0~x4:0, x8:0, x9:0, x10:0, x11:0, x12:0, x13:0, x14:0) -> f_539(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0, x15:0, x10:0, x16:0, x8:0, 1 + (x15:0 + x4:0), x11:0, x12:0, x13:0, x14:0) :|: x15:0 >= x10:0 && x3:0 <= x14:0 && x2:0 <= x13:0 && x1:0 <= x12:0 && x:0 <= x11:0 && x14:0 > 3 && x13:0 > 3 && x12:0 > 3 && x11:0 > 3 && x4:0 > -1 && x3:0 > 0 && x2:0 > 0 && x1:0 > 0 && x:0 > 0 && x10:0 <= 1 + (x15:0 + x4:0) && x8:0 <= 1 + (x15:0 + x4:0) && x9:0 >= x8:0 && x6:0 <= x5:0 && sum~cons_1~sum~x15:0~x4:0 = 1 + (x15:0 + x4:0) f_539(x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, sum~cons_1~sum~x51:0~x39:0, x43:0, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0) -> f_539(x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x51:0, x43:0, x52:0, x45:0, 1 + (x51:0 + x39:0), x47:0, x48:0, x49:0, x50:0) :|: x51:0 >= x43:0 && x44:0 > 0 && x50:0 >= x38:0 && x49:0 >= x37:0 && x48:0 >= x36:0 && x47:0 >= x35:0 && x50:0 > 3 && x49:0 > 3 && x48:0 > 3 && x47:0 > 3 && x39:0 > -1 && x38:0 > 0 && x37:0 > 0 && x36:0 > 0 && x35:0 > 0 && x43:0 <= 1 + (x51:0 + x39:0) && x45:0 <= 1 + (x51:0 + x39:0) && x46:0 >= x45:0 && x41:0 <= x40:0 && sum~cons_1~sum~x51:0~x39:0 = 1 + (x51:0 + x39:0) f_539(v3058:0:0, v3059:0:0, v3060:0:0, v3061:0:0, v3062:0:0, v3063:0:0, v3064:0:0, v3072:0:0, v3066:0:0, cons_0, v3069:0:0, v3065:0:0, v3073:0:0, v3074:0:0, v3075:0:0, v3076:0:0) -> f_489(v3058:0:0, v3059:0:0, v3060:0:0, v3061:0:0, v3062:0:0, v3063:0:0, v3064:0:0, v3072:0:0, v3066:0:0, v3065:0:0, 1 + v3066:0:0 + v3062:0:0, v3073:0:0, v3074:0:0, v3075:0:0, v3076:0:0) :|: v3076:0:0 >= v3061:0:0 && v3075:0:0 >= v3060:0:0 && v3074:0:0 >= v3059:0:0 && v3073:0:0 >= v3058:0:0 && v3076:0:0 > 3 && v3075:0:0 > 3 && v3074:0:0 > 3 && v3073:0:0 > 3 && v3062:0:0 > -1 && v3061:0:0 > 0 && v3060:0:0 > 0 && v3059:0:0 > 0 && v3058:0:0 > 0 && v3072:0:0 >= v3066:0:0 && v3066:0:0 <= v3065:0:0 && v3069:0:0 <= v3065:0:0 && v3064:0:0 <= v3063:0:0 && cons_0 = 0 ---------------------------------------- (12) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_539 ] = -1*f_539_9 + f_539_8 [ f_489 ] = -1*f_489_11 + f_489_8 The following rules are decreasing: f_539(x17:0, x18:0, x19:0, x20:0, x21:0, x22:0, x23:0, sum~cons_1~sum~x33:0~x21:0, x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0) -> f_539(x17:0, x18:0, x19:0, x20:0, x21:0, x22:0, x23:0, x33:0, x25:0, x34:0, x27:0, 1 + (x33:0 + x21:0), x29:0, x30:0, x31:0, x32:0) :|: x33:0 >= x25:0 && x26:0 < 0 && x32:0 >= x20:0 && x31:0 >= x19:0 && x30:0 >= x18:0 && x29:0 >= x17:0 && x32:0 > 3 && x31:0 > 3 && x30:0 > 3 && x29:0 > 3 && x21:0 > -1 && x20:0 > 0 && x19:0 > 0 && x18:0 > 0 && x17:0 > 0 && x25:0 <= 1 + (x33:0 + x21:0) && x27:0 <= 1 + (x33:0 + x21:0) && x28:0 >= x27:0 && x23:0 <= x22:0 && sum~cons_1~sum~x33:0~x21:0 = 1 + (x33:0 + x21:0) f_489(v2596:0:0, v2597:0:0, v2598:0:0, v2599:0:0, v2600:0:0, v2601:0:0, v2602:0:0, v2603:0:0, v2604:0:0, v2607:0:0, v2610:0:0, v2611:0:0, v2612:0:0, v2613:0:0, v2614:0:0) -> f_489(v2596:0:0, v2597:0:0, v2598:0:0, v2599:0:0, v2600:0:0, v2601:0:0, v2602:0:0, v2603:0:0, v2610:0:0, v2607:0:0, 1 + v2610:0:0 + v2600:0:0, v2611:0:0, v2612:0:0, v2613:0:0, v2614:0:0) :|: v2614:0:0 >= v2599:0:0 && v2613:0:0 >= v2598:0:0 && v2612:0:0 >= v2597:0:0 && v2611:0:0 >= v2596:0:0 && v2614:0:0 > 3 && v2613:0:0 > 3 && v2612:0:0 > 3 && v2611:0:0 > 3 && v2600:0:0 > -1 && v2599:0:0 > 0 && v2598:0:0 > 0 && v2597:0:0 > 0 && v2596:0:0 > 0 && v2610:0:0 <= v2603:0:0 && v2610:0:0 <= v2607:0:0 && v2607:0:0 >= v2604:0:0 && v2602:0:0 <= v2601:0:0 f_489(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0, sum~cons_1~sum~x15:0~x4:0, x8:0, x9:0, x10:0, x11:0, x12:0, x13:0, x14:0) -> f_539(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0, x15:0, x10:0, x16:0, x8:0, 1 + (x15:0 + x4:0), x11:0, x12:0, x13:0, x14:0) :|: x15:0 >= x10:0 && x3:0 <= x14:0 && x2:0 <= x13:0 && x1:0 <= x12:0 && x:0 <= x11:0 && x14:0 > 3 && x13:0 > 3 && x12:0 > 3 && x11:0 > 3 && x4:0 > -1 && x3:0 > 0 && x2:0 > 0 && x1:0 > 0 && x:0 > 0 && x10:0 <= 1 + (x15:0 + x4:0) && x8:0 <= 1 + (x15:0 + x4:0) && x9:0 >= x8:0 && x6:0 <= x5:0 && sum~cons_1~sum~x15:0~x4:0 = 1 + (x15:0 + x4:0) f_539(x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, sum~cons_1~sum~x51:0~x39:0, x43:0, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0) -> f_539(x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x51:0, x43:0, x52:0, x45:0, 1 + (x51:0 + x39:0), x47:0, x48:0, x49:0, x50:0) :|: x51:0 >= x43:0 && x44:0 > 0 && x50:0 >= x38:0 && x49:0 >= x37:0 && x48:0 >= x36:0 && x47:0 >= x35:0 && x50:0 > 3 && x49:0 > 3 && x48:0 > 3 && x47:0 > 3 && x39:0 > -1 && x38:0 > 0 && x37:0 > 0 && x36:0 > 0 && x35:0 > 0 && x43:0 <= 1 + (x51:0 + x39:0) && x45:0 <= 1 + (x51:0 + x39:0) && x46:0 >= x45:0 && x41:0 <= x40:0 && sum~cons_1~sum~x51:0~x39:0 = 1 + (x51:0 + x39:0) f_539(v3058:0:0, v3059:0:0, v3060:0:0, v3061:0:0, v3062:0:0, v3063:0:0, v3064:0:0, v3072:0:0, v3066:0:0, cons_0, v3069:0:0, v3065:0:0, v3073:0:0, v3074:0:0, v3075:0:0, v3076:0:0) -> f_489(v3058:0:0, v3059:0:0, v3060:0:0, v3061:0:0, v3062:0:0, v3063:0:0, v3064:0:0, v3072:0:0, v3066:0:0, v3065:0:0, 1 + v3066:0:0 + v3062:0:0, v3073:0:0, v3074:0:0, v3075:0:0, v3076:0:0) :|: v3076:0:0 >= v3061:0:0 && v3075:0:0 >= v3060:0:0 && v3074:0:0 >= v3059:0:0 && v3073:0:0 >= v3058:0:0 && v3076:0:0 > 3 && v3075:0:0 > 3 && v3074:0:0 > 3 && v3073:0:0 > 3 && v3062:0:0 > -1 && v3061:0:0 > 0 && v3060:0:0 > 0 && v3059:0:0 > 0 && v3058:0:0 > 0 && v3072:0:0 >= v3066:0:0 && v3066:0:0 <= v3065:0:0 && v3069:0:0 <= v3065:0:0 && v3064:0:0 <= v3063:0:0 && cons_0 = 0 The following rules are bounded: f_539(x17:0, x18:0, x19:0, x20:0, x21:0, x22:0, x23:0, sum~cons_1~sum~x33:0~x21:0, x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0) -> f_539(x17:0, x18:0, x19:0, x20:0, x21:0, x22:0, x23:0, x33:0, x25:0, x34:0, x27:0, 1 + (x33:0 + x21:0), x29:0, x30:0, x31:0, x32:0) :|: x33:0 >= x25:0 && x26:0 < 0 && x32:0 >= x20:0 && x31:0 >= x19:0 && x30:0 >= x18:0 && x29:0 >= x17:0 && x32:0 > 3 && x31:0 > 3 && x30:0 > 3 && x29:0 > 3 && x21:0 > -1 && x20:0 > 0 && x19:0 > 0 && x18:0 > 0 && x17:0 > 0 && x25:0 <= 1 + (x33:0 + x21:0) && x27:0 <= 1 + (x33:0 + x21:0) && x28:0 >= x27:0 && x23:0 <= x22:0 && sum~cons_1~sum~x33:0~x21:0 = 1 + (x33:0 + x21:0) f_489(v2596:0:0, v2597:0:0, v2598:0:0, v2599:0:0, v2600:0:0, v2601:0:0, v2602:0:0, v2603:0:0, v2604:0:0, v2607:0:0, v2610:0:0, v2611:0:0, v2612:0:0, v2613:0:0, v2614:0:0) -> f_489(v2596:0:0, v2597:0:0, v2598:0:0, v2599:0:0, v2600:0:0, v2601:0:0, v2602:0:0, v2603:0:0, v2610:0:0, v2607:0:0, 1 + v2610:0:0 + v2600:0:0, v2611:0:0, v2612:0:0, v2613:0:0, v2614:0:0) :|: v2614:0:0 >= v2599:0:0 && v2613:0:0 >= v2598:0:0 && v2612:0:0 >= v2597:0:0 && v2611:0:0 >= v2596:0:0 && v2614:0:0 > 3 && v2613:0:0 > 3 && v2612:0:0 > 3 && v2611:0:0 > 3 && v2600:0:0 > -1 && v2599:0:0 > 0 && v2598:0:0 > 0 && v2597:0:0 > 0 && v2596:0:0 > 0 && v2610:0:0 <= v2603:0:0 && v2610:0:0 <= v2607:0:0 && v2607:0:0 >= v2604:0:0 && v2602:0:0 <= v2601:0:0 f_489(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0, sum~cons_1~sum~x15:0~x4:0, x8:0, x9:0, x10:0, x11:0, x12:0, x13:0, x14:0) -> f_539(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0, x15:0, x10:0, x16:0, x8:0, 1 + (x15:0 + x4:0), x11:0, x12:0, x13:0, x14:0) :|: x15:0 >= x10:0 && x3:0 <= x14:0 && x2:0 <= x13:0 && x1:0 <= x12:0 && x:0 <= x11:0 && x14:0 > 3 && x13:0 > 3 && x12:0 > 3 && x11:0 > 3 && x4:0 > -1 && x3:0 > 0 && x2:0 > 0 && x1:0 > 0 && x:0 > 0 && x10:0 <= 1 + (x15:0 + x4:0) && x8:0 <= 1 + (x15:0 + x4:0) && x9:0 >= x8:0 && x6:0 <= x5:0 && sum~cons_1~sum~x15:0~x4:0 = 1 + (x15:0 + x4:0) f_539(x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, sum~cons_1~sum~x51:0~x39:0, x43:0, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0) -> f_539(x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x51:0, x43:0, x52:0, x45:0, 1 + (x51:0 + x39:0), x47:0, x48:0, x49:0, x50:0) :|: x51:0 >= x43:0 && x44:0 > 0 && x50:0 >= x38:0 && x49:0 >= x37:0 && x48:0 >= x36:0 && x47:0 >= x35:0 && x50:0 > 3 && x49:0 > 3 && x48:0 > 3 && x47:0 > 3 && x39:0 > -1 && x38:0 > 0 && x37:0 > 0 && x36:0 > 0 && x35:0 > 0 && x43:0 <= 1 + (x51:0 + x39:0) && x45:0 <= 1 + (x51:0 + x39:0) && x46:0 >= x45:0 && x41:0 <= x40:0 && sum~cons_1~sum~x51:0~x39:0 = 1 + (x51:0 + x39:0) f_539(v3058:0:0, v3059:0:0, v3060:0:0, v3061:0:0, v3062:0:0, v3063:0:0, v3064:0:0, v3072:0:0, v3066:0:0, cons_0, v3069:0:0, v3065:0:0, v3073:0:0, v3074:0:0, v3075:0:0, v3076:0:0) -> f_489(v3058:0:0, v3059:0:0, v3060:0:0, v3061:0:0, v3062:0:0, v3063:0:0, v3064:0:0, v3072:0:0, v3066:0:0, v3065:0:0, 1 + v3066:0:0 + v3062:0:0, v3073:0:0, v3074:0:0, v3075:0:0, v3076:0:0) :|: v3076:0:0 >= v3061:0:0 && v3075:0:0 >= v3060:0:0 && v3074:0:0 >= v3059:0:0 && v3073:0:0 >= v3058:0:0 && v3076:0:0 > 3 && v3075:0:0 > 3 && v3074:0:0 > 3 && v3073:0:0 > 3 && v3062:0:0 > -1 && v3061:0:0 > 0 && v3060:0:0 > 0 && v3059:0:0 > 0 && v3058:0:0 > 0 && v3072:0:0 >= v3066:0:0 && v3066:0:0 <= v3065:0:0 && v3069:0:0 <= v3065:0:0 && v3064:0:0 <= v3063:0:0 && cons_0 = 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 21 rulesP rules: f_305(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_307(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_307(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_309(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: v634 <= v639 f_309(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_313(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_313(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_317(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_317(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_321(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_321(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_325(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_325(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_327(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_327(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_329(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_329(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_331(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_331(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_333(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: v788 != 0 f_333(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_337(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_337(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_341(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_341(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_345(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_345(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v638, v640, v641, v642, v643, 0, 3, 4) -> f_349(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) :|: 1 + v808 = v639 f_349(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) -> f_353(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_353(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) -> f_357(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: v812 + v632 = v808 f_357(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_361(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_361(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_365(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_365(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_369(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_369(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_303(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: v634 <= v633 && v634 <= v639 && 1 <= v628 && 1 <= v629 && 1 <= v630 && 1 <= v631 && 0 <= v632 && 4 <= v640 && 4 <= v641 && 4 <= v642 && 4 <= v643 && v628 <= v640 && v629 <= v641 && v630 <= v642 && v631 <= v643 f_303(v628, v629, v630, v631, v632, v633, v634, v635, 1, v637, v638, v639, v640, v641, v642, v643, 0, 3, 4) -> f_305(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 Combined rules. Obtained 2 rulesP rules: f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, 1 + (v812:0 + v632:0), 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) -> f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v812:0, 1, v788:0, 1 + (v812:0 + v632:0), v812:0 + v632:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) :|: v634:0 <= 1 + (v812:0 + v632:0) && v634:0 <= v633:0 && v628:0 > 0 && v629:0 > 0 && v630:0 > 0 && v631:0 > 0 && v788:0 < 0 && v632:0 > -1 && v640:0 > 3 && v641:0 > 3 && v642:0 > 3 && v643:0 > 3 && v640:0 >= v628:0 && v641:0 >= v629:0 && v643:0 >= v631:0 && v642:0 >= v630:0 f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, 1 + (v812:0 + v632:0), 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) -> f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v812:0, 1, v788:0, 1 + (v812:0 + v632:0), v812:0 + v632:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) :|: v634:0 <= 1 + (v812:0 + v632:0) && v634:0 <= v633:0 && v628:0 > 0 && v629:0 > 0 && v630:0 > 0 && v631:0 > 0 && v788:0 > 0 && v632:0 > -1 && v640:0 > 3 && v641:0 > 3 && v642:0 > 3 && v643:0 > 3 && v640:0 >= v628:0 && v641:0 >= v629:0 && v643:0 >= v631:0 && v642:0 >= v630:0 Filtered unneeded arguments: f_305(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_305(x1, x2, x3, x4, x5, x6, x7, x8, x13, x14, x15, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, sum~cons_1~sum~v812:0~v632:0, v640:0, v641:0, v642:0, v643:0) -> f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v812:0, v640:0, v641:0, v642:0, v643:0) :|: v634:0 <= v633:0 && v634:0 <= 1 + (v812:0 + v632:0) && v628:0 > 0 && v629:0 > 0 && v630:0 > 0 && v631:0 > 0 && v632:0 > -1 && v640:0 > 3 && v641:0 > 3 && v642:0 > 3 && v643:0 > 3 && v640:0 >= v628:0 && v641:0 >= v629:0 && v642:0 >= v630:0 && v643:0 >= v631:0 && sum~cons_1~sum~v812:0~v632:0 = 1 + (v812:0 + v632:0) ---------------------------------------- (16) Obligation: Rules: f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, sum~cons_1~sum~v812:0~v632:0, v640:0, v641:0, v642:0, v643:0) -> f_305(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v812:0, v640:0, v641:0, v642:0, v643:0) :|: v634:0 <= v633:0 && v634:0 <= 1 + (v812:0 + v632:0) && v628:0 > 0 && v629:0 > 0 && v630:0 > 0 && v631:0 > 0 && v632:0 > -1 && v640:0 > 3 && v641:0 > 3 && v642:0 > 3 && v643:0 > 3 && v640:0 >= v628:0 && v641:0 >= v629:0 && v642:0 >= v630:0 && v643:0 >= v631:0 && sum~cons_1~sum~v812:0~v632:0 = 1 + (v812:0 + v632:0) ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f_305(v628:0:0, v629:0:0, v630:0:0, v631:0:0, v632:0:0, v633:0:0, v634:0:0, sum~cons_1~sum~v812:0:0~v632:0:0, v640:0:0, v641:0:0, v642:0:0, v643:0:0) -> f_305(v628:0:0, v629:0:0, v630:0:0, v631:0:0, v632:0:0, v633:0:0, v634:0:0, v812:0:0, v640:0:0, v641:0:0, v642:0:0, v643:0:0) :|: v642:0:0 >= v630:0:0 && v643:0:0 >= v631:0:0 && v641:0:0 >= v629:0:0 && v640:0:0 >= v628:0:0 && v643:0:0 > 3 && v642:0:0 > 3 && v641:0:0 > 3 && v640:0:0 > 3 && v632:0:0 > -1 && v631:0:0 > 0 && v630:0:0 > 0 && v629:0:0 > 0 && v628:0:0 > 0 && v634:0:0 <= 1 + (v812:0:0 + v632:0:0) && v634:0:0 <= v633:0:0 && sum~cons_1~sum~v812:0:0~v632:0:0 = 1 + (v812:0:0 + v632:0:0) ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_305 ] = -1*f_305_7 + f_305_8 The following rules are decreasing: f_305(v628:0:0, v629:0:0, v630:0:0, v631:0:0, v632:0:0, v633:0:0, v634:0:0, sum~cons_1~sum~v812:0:0~v632:0:0, v640:0:0, v641:0:0, v642:0:0, v643:0:0) -> f_305(v628:0:0, v629:0:0, v630:0:0, v631:0:0, v632:0:0, v633:0:0, v634:0:0, v812:0:0, v640:0:0, v641:0:0, v642:0:0, v643:0:0) :|: v642:0:0 >= v630:0:0 && v643:0:0 >= v631:0:0 && v641:0:0 >= v629:0:0 && v640:0:0 >= v628:0:0 && v643:0:0 > 3 && v642:0:0 > 3 && v641:0:0 > 3 && v640:0:0 > 3 && v632:0:0 > -1 && v631:0:0 > 0 && v630:0:0 > 0 && v629:0:0 > 0 && v628:0:0 > 0 && v634:0:0 <= 1 + (v812:0:0 + v632:0:0) && v634:0:0 <= v633:0:0 && sum~cons_1~sum~v812:0:0~v632:0:0 = 1 + (v812:0:0 + v632:0:0) The following rules are bounded: f_305(v628:0:0, v629:0:0, v630:0:0, v631:0:0, v632:0:0, v633:0:0, v634:0:0, sum~cons_1~sum~v812:0:0~v632:0:0, v640:0:0, v641:0:0, v642:0:0, v643:0:0) -> f_305(v628:0:0, v629:0:0, v630:0:0, v631:0:0, v632:0:0, v633:0:0, v634:0:0, v812:0:0, v640:0:0, v641:0:0, v642:0:0, v643:0:0) :|: v642:0:0 >= v630:0:0 && v643:0:0 >= v631:0:0 && v641:0:0 >= v629:0:0 && v640:0:0 >= v628:0:0 && v643:0:0 > 3 && v642:0:0 > 3 && v641:0:0 > 3 && v640:0:0 > 3 && v632:0:0 > -1 && v631:0:0 > 0 && v630:0:0 > 0 && v629:0:0 > 0 && v628:0:0 > 0 && v634:0:0 <= 1 + (v812:0:0 + v632:0:0) && v634:0:0 <= v633:0:0 && sum~cons_1~sum~v812:0:0~v632:0:0 = 1 + (v812:0:0 + v632:0:0) ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 21 rulesP rules: f_304(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) -> f_306(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_306(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) -> f_308(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_308(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_311(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: v595 <= v589 f_311(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_315(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_315(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_319(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_319(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_323(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_323(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_326(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_326(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_328(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_328(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_330(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_330(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_332(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_332(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_336(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: v789 = 0 f_336(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_340(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_340(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_344(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_344(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_348(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_348(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v594, v596, v597, v598, v599, 3, 4) -> f_352(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) :|: v811 = 1 + v595 f_352(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) -> f_356(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_356(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) -> f_360(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: v815 = v811 + v588 f_360(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) -> f_364(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: TRUE f_364(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) -> f_368(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: TRUE f_368(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) -> f_301(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: v590 <= v589 && v595 <= v589 && 1 <= v584 && 1 <= v585 && 1 <= v586 && 1 <= v587 && 0 <= v588 && 4 <= v596 && 4 <= v597 && 4 <= v598 && 4 <= v599 && v584 <= v596 && v585 <= v597 && v586 <= v598 && v587 <= v599 f_301(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) -> f_304(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_304(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v591:0, 1, 0, v594:0, v595:0, v596:0, v597:0, v598:0, v599:0, 3, 4) -> f_304(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, 1, 0, 1 + v595:0, 1 + v595:0 + v588:0, v596:0, v597:0, v598:0, v599:0, 3, 4) :|: v595:0 <= v589:0 && v590:0 <= v589:0 && v584:0 > 0 && v585:0 > 0 && v586:0 > 0 && v587:0 > 0 && v588:0 > -1 && v596:0 > 3 && v597:0 > 3 && v598:0 > 3 && v599:0 > 3 && v596:0 >= v584:0 && v597:0 >= v585:0 && v599:0 >= v587:0 && v598:0 >= v586:0 Filtered unneeded arguments: f_304(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_304(x1, x2, x3, x4, x5, x6, x7, x12, x13, x14, x15, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_304(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, v596:0, v597:0, v598:0, v599:0) -> f_304(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, 1 + v595:0 + v588:0, v596:0, v597:0, v598:0, v599:0) :|: v590:0 <= v589:0 && v595:0 <= v589:0 && v584:0 > 0 && v585:0 > 0 && v586:0 > 0 && v587:0 > 0 && v588:0 > -1 && v596:0 > 3 && v597:0 > 3 && v598:0 > 3 && v599:0 > 3 && v596:0 >= v584:0 && v597:0 >= v585:0 && v598:0 >= v586:0 && v599:0 >= v587:0 ---------------------------------------- (23) Obligation: Rules: f_304(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, v596:0, v597:0, v598:0, v599:0) -> f_304(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, 1 + v595:0 + v588:0, v596:0, v597:0, v598:0, v599:0) :|: v590:0 <= v589:0 && v595:0 <= v589:0 && v584:0 > 0 && v585:0 > 0 && v586:0 > 0 && v587:0 > 0 && v588:0 > -1 && v596:0 > 3 && v597:0 > 3 && v598:0 > 3 && v599:0 > 3 && v596:0 >= v584:0 && v597:0 >= v585:0 && v598:0 >= v586:0 && v599:0 >= v587:0 ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f_304(v584:0:0, v585:0:0, v586:0:0, v587:0:0, v588:0:0, v589:0:0, v590:0:0, v595:0:0, v596:0:0, v597:0:0, v598:0:0, v599:0:0) -> f_304(v584:0:0, v585:0:0, v586:0:0, v587:0:0, v588:0:0, v589:0:0, v590:0:0, 1 + v595:0:0 + v588:0:0, v596:0:0, v597:0:0, v598:0:0, v599:0:0) :|: v598:0:0 >= v586:0:0 && v599:0:0 >= v587:0:0 && v597:0:0 >= v585:0:0 && v596:0:0 >= v584:0:0 && v599:0:0 > 3 && v598:0:0 > 3 && v597:0:0 > 3 && v596:0:0 > 3 && v588:0:0 > -1 && v587:0:0 > 0 && v586:0:0 > 0 && v585:0:0 > 0 && v584:0:0 > 0 && v595:0:0 <= v589:0:0 && v590:0:0 <= v589:0:0 ---------------------------------------- (26) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_304 ] = -1*f_304_8 + f_304_6 The following rules are decreasing: f_304(v584:0:0, v585:0:0, v586:0:0, v587:0:0, v588:0:0, v589:0:0, v590:0:0, v595:0:0, v596:0:0, v597:0:0, v598:0:0, v599:0:0) -> f_304(v584:0:0, v585:0:0, v586:0:0, v587:0:0, v588:0:0, v589:0:0, v590:0:0, 1 + v595:0:0 + v588:0:0, v596:0:0, v597:0:0, v598:0:0, v599:0:0) :|: v598:0:0 >= v586:0:0 && v599:0:0 >= v587:0:0 && v597:0:0 >= v585:0:0 && v596:0:0 >= v584:0:0 && v599:0:0 > 3 && v598:0:0 > 3 && v597:0:0 > 3 && v596:0:0 > 3 && v588:0:0 > -1 && v587:0:0 > 0 && v586:0:0 > 0 && v585:0:0 > 0 && v584:0:0 > 0 && v595:0:0 <= v589:0:0 && v590:0:0 <= v589:0:0 The following rules are bounded: f_304(v584:0:0, v585:0:0, v586:0:0, v587:0:0, v588:0:0, v589:0:0, v590:0:0, v595:0:0, v596:0:0, v597:0:0, v598:0:0, v599:0:0) -> f_304(v584:0:0, v585:0:0, v586:0:0, v587:0:0, v588:0:0, v589:0:0, v590:0:0, 1 + v595:0:0 + v588:0:0, v596:0:0, v597:0:0, v598:0:0, v599:0:0) :|: v598:0:0 >= v586:0:0 && v599:0:0 >= v587:0:0 && v597:0:0 >= v585:0:0 && v596:0:0 >= v584:0:0 && v599:0:0 > 3 && v598:0:0 > 3 && v597:0:0 > 3 && v596:0:0 > 3 && v588:0:0 > -1 && v587:0:0 > 0 && v586:0:0 > 0 && v585:0:0 > 0 && v584:0:0 > 0 && v595:0:0 <= v589:0:0 && v590:0:0 <= v589:0:0 ---------------------------------------- (27) YES