30.64/9.49 YES 30.64/9.50 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 30.64/9.50 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 30.64/9.50 30.64/9.50 30.64/9.50 Termination of the given C Problem could be proven: 30.64/9.50 30.64/9.50 (0) C Problem 30.64/9.50 (1) CToLLVMProof [EQUIVALENT, 172 ms] 30.64/9.50 (2) LLVM problem 30.64/9.50 (3) LLVMToTerminationGraphProof [EQUIVALENT, 3865 ms] 30.64/9.50 (4) LLVM Symbolic Execution Graph 30.64/9.50 (5) SymbolicExecutionGraphToSCCProof [SOUND, 3 ms] 30.64/9.50 (6) AND 30.64/9.50 (7) LLVM Symbolic Execution SCC 30.64/9.50 (8) SCC2IRS [SOUND, 150 ms] 30.64/9.50 (9) IntTRS 30.64/9.50 (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] 30.64/9.50 (11) IntTRS 30.64/9.50 (12) RankingReductionPairProof [EQUIVALENT, 4 ms] 30.64/9.50 (13) YES 30.64/9.50 (14) LLVM Symbolic Execution SCC 30.64/9.50 (15) SCC2IRS [SOUND, 160 ms] 30.64/9.50 (16) IntTRS 30.64/9.50 (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] 30.64/9.50 (18) IntTRS 30.64/9.50 (19) RankingReductionPairProof [EQUIVALENT, 7 ms] 30.64/9.50 (20) YES 30.64/9.50 (21) LLVM Symbolic Execution SCC 30.64/9.50 (22) SCC2IRS [SOUND, 123 ms] 30.64/9.50 (23) IntTRS 30.64/9.50 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 30.64/9.50 (25) IntTRS 30.64/9.50 (26) RankingReductionPairProof [EQUIVALENT, 0 ms] 30.64/9.50 (27) YES 30.64/9.50 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (0) 30.64/9.50 Obligation: 30.64/9.50 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (1) CToLLVMProof (EQUIVALENT) 30.64/9.50 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (2) 30.64/9.50 Obligation: 30.64/9.50 LLVM Problem 30.64/9.50 30.64/9.50 Aliases: 30.64/9.50 30.64/9.50 Data layout: 30.64/9.50 30.64/9.50 "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" 30.64/9.50 30.64/9.50 Machine: 30.64/9.50 30.64/9.50 "x86_64-pc-linux-gnu" 30.64/9.50 30.64/9.50 Type definitions: 30.64/9.50 30.64/9.50 Global variables: 30.64/9.50 30.64/9.50 Function declarations and definitions: 30.64/9.50 30.64/9.50 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 30.64/9.50 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 30.64/9.50 0: 30.64/9.50 %1 = alloca i32, align 4 30.64/9.50 %x = alloca *i32, align 8 30.64/9.50 %y = alloca *i32, align 8 30.64/9.50 %z = alloca *i32, align 8 30.64/9.50 store 0, %1 30.64/9.50 %2 = alloca i8, numElementsLit: 4 30.64/9.50 %3 = bitcast *i8 %2 to *i32 30.64/9.50 store %3, %x 30.64/9.50 %4 = alloca i8, numElementsLit: 4 30.64/9.50 %5 = bitcast *i8 %4 to *i32 30.64/9.50 store %5, %y 30.64/9.50 %6 = alloca i8, numElementsLit: 4 30.64/9.50 %7 = bitcast *i8 %6 to *i32 30.64/9.50 store %7, %z 30.64/9.50 %8 = call i32 @__VERIFIER_nondet_int() 30.64/9.50 %9 = load %x 30.64/9.50 store %8, %9 30.64/9.50 %10 = call i32 @__VERIFIER_nondet_int() 30.64/9.50 %11 = load %y 30.64/9.50 store %10, %11 30.64/9.50 %12 = call i32 @__VERIFIER_nondet_int() 30.64/9.50 %13 = load %z 30.64/9.50 store %12, %13 30.64/9.50 br %14 30.64/9.50 14: 30.64/9.50 %15 = load %x 30.64/9.50 %16 = load %15 30.64/9.50 %17 = icmp sgt %16 0 30.64/9.50 br %17, %18, %26 30.64/9.50 18: 30.64/9.50 %19 = load %y 30.64/9.50 %20 = load %19 30.64/9.50 %21 = icmp sgt %20 0 30.64/9.50 br %21, %22, %26 30.64/9.50 22: 30.64/9.50 %23 = load %z 30.64/9.50 %24 = load %23 30.64/9.50 %25 = icmp sgt %24 0 30.64/9.50 br %26 30.64/9.50 26: 30.64/9.50 %27 = phi [0, %18], [0, %14], [%25, %22] 30.64/9.50 br %27, %28, %56 30.64/9.50 28: 30.64/9.50 %29 = load %y 30.64/9.50 %30 = load %29 30.64/9.50 %31 = load %x 30.64/9.50 %32 = load %31 30.64/9.50 %33 = icmp sgt %30 %32 30.64/9.50 br %33, %34, %44 30.64/9.50 34: 30.64/9.50 %35 = load %z 30.64/9.50 %36 = load %35 30.64/9.50 %37 = load %y 30.64/9.50 store %36, %37 30.64/9.50 %38 = call i32 @__VERIFIER_nondet_int() 30.64/9.50 %39 = load %x 30.64/9.50 store %38, %39 30.64/9.50 %40 = load %x 30.64/9.50 %41 = load %40 30.64/9.50 %42 = sub %41 1 30.64/9.50 %43 = load %z 30.64/9.50 store %42, %43 30.64/9.50 br %55 30.64/9.50 44: 30.64/9.50 %45 = load %z 30.64/9.50 %46 = load %45 30.64/9.50 %47 = sub %46 1 30.64/9.50 %48 = load %z 30.64/9.50 store %47, %48 30.64/9.50 %49 = call i32 @__VERIFIER_nondet_int() 30.64/9.50 %50 = load %x 30.64/9.50 store %49, %50 30.64/9.50 %51 = load %x 30.64/9.50 %52 = load %51 30.64/9.50 %53 = sub %52 1 30.64/9.50 %54 = load %y 30.64/9.50 store %53, %54 30.64/9.50 br %55 30.64/9.50 55: 30.64/9.50 br %14 30.64/9.50 56: 30.64/9.50 ret 0 30.64/9.50 30.64/9.50 30.64/9.50 Analyze Termination of all function calls matching the pattern: 30.64/9.50 main() 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (3) LLVMToTerminationGraphProof (EQUIVALENT) 30.64/9.50 Constructed symbolic execution graph for LLVM program and proved memory safety. 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (4) 30.64/9.50 Obligation: 30.64/9.50 SE Graph 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (5) SymbolicExecutionGraphToSCCProof (SOUND) 30.64/9.50 Splitted symbolic execution graph to 3 SCCs. 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (6) 30.64/9.50 Complex Obligation (AND) 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (7) 30.64/9.50 Obligation: 30.64/9.50 SCC 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (8) SCC2IRS (SOUND) 30.64/9.50 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 30.64/9.50 Generated rules. Obtained 38 rulesP rules: 30.64/9.50 f_684(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4037, 1, v4039, v4040, 0, v4042, v4043, v4044, v4045, v4046, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_685(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4037, 1, v4039, v4040, 0, v4042, v4043, v4044, v4045, v4046, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_685(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4037, 1, v4039, v4040, 0, v4042, v4043, v4044, v4045, v4046, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_686(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_686(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_687(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 < v4046 && 0 <= v4047 30.64/9.50 f_687(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_689(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_689(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_691(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_691(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_693(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_693(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4039, v4040, v4037, 0, v4042, v4043, v4044, v4045, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_695(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_695(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_696(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 < v4047 && 2 <= v4046 30.64/9.50 f_696(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_698(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_698(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_700(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_700(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_702(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_702(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4040, v4039, v4037, 0, v4042, v4043, v4044, v4045, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_704(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_704(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_705(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 < v4045 && 2 <= v4040 && 2 <= v4044 && 3 <= v4043 30.64/9.50 f_705(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_707(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_707(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_709(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_709(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_711(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_711(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_713(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_713(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4039, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_714(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_714(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_715(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_715(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, v4037, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_716(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_716(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_717(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_717(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_718(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_718(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_719(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_719(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4040, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_720(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_720(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_721(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 1 + v4932 = v4045 && 0 <= v4932 30.64/9.50 f_721(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_722(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_722(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_723(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_723(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_724(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_724(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_725(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_725(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_726(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_726(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_727(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_727(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_728(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_728(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_729(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 1 + v4936 = v4934 30.64/9.50 f_729(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_730(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_730(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_731(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_731(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_732(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_732(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_683(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4046, 1, v4047, v4045, 0, v4042, v4043, v4044, v4932, v4934, v4936, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_683(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4037, 1, v4039, v4040, 0, v4042, v4043, v4044, v4045, v4046, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) -> f_684(v4027, v4028, v4029, v4030, v4031, v4032, v4033, v4034, v4035, v4036, v4037, 1, v4039, v4040, 0, v4042, v4043, v4044, v4045, v4046, v4047, v4048, v4049, v4050, v4051, v4052, v4053, v4054, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 Combined rules. Obtained 1 rulesP rules: 30.64/9.50 f_684(v4027:0, v4028:0, v4029:0, v4030:0, v4031:0, v4032:0, v4033:0, v4034:0, v4035:0, v4036:0, v4037:0, 1, v4039:0, v4040:0, 0, v4042:0, v4043:0, v4044:0, 1 + v4932:0, v4046:0, v4047:0, v4048:0, v4049:0, v4050:0, v4051:0, v4052:0, v4053:0, v4054:0, 3, 7, 2, 4, 8) -> f_684(v4027:0, v4028:0, v4029:0, v4030:0, v4031:0, v4032:0, v4033:0, v4034:0, v4035:0, v4036:0, v4046:0, 1, v4047:0, 1 + v4932:0, 0, v4042:0, v4043:0, v4044:0, v4932:0, 1 + v4936:0, v4936:0, v4048:0, v4049:0, v4050:0, v4051:0, v4052:0, v4053:0, v4054:0, 3, 7, 2, 4, 8) :|: v4046:0 > 1 && v4047:0 > 0 && v4040:0 > 1 && v4932:0 > -1 && v4044:0 > 1 && v4043:0 > 2 30.64/9.50 Filtered unneeded arguments: 30.64/9.50 f_684(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) -> f_684(x14, x17, x18, x19, x20, x21) 30.64/9.50 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 30.64/9.50 f_684(v4040:0, v4043:0, v4044:0, sum~cons_1~v4932:0, v4046:0, v4047:0) -> f_684(1 + v4932:0, v4043:0, v4044:0, v4932:0, 1 + v4936:0, v4936:0) :|: v4047:0 > 0 && v4046:0 > 1 && v4040:0 > 1 && v4932:0 > -1 && v4043:0 > 2 && v4044:0 > 1 && sum~cons_1~v4932:0 = 1 + v4932:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (9) 30.64/9.50 Obligation: 30.64/9.50 Rules: 30.64/9.50 f_684(v4040:0, v4043:0, v4044:0, sum~cons_1~v4932:0, v4046:0, v4047:0) -> f_684(1 + v4932:0, v4043:0, v4044:0, v4932:0, 1 + v4936:0, v4936:0) :|: v4047:0 > 0 && v4046:0 > 1 && v4040:0 > 1 && v4932:0 > -1 && v4043:0 > 2 && v4044:0 > 1 && sum~cons_1~v4932:0 = 1 + v4932:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (10) IntTRSCompressionProof (EQUIVALENT) 30.64/9.50 Compressed rules. 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (11) 30.64/9.50 Obligation: 30.64/9.50 Rules: 30.64/9.50 f_684(v4040:0:0, v4043:0:0, v4044:0:0, sum~cons_1~v4932:0:0, v4046:0:0, v4047:0:0) -> f_684(1 + v4932:0:0, v4043:0:0, v4044:0:0, v4932:0:0, 1 + v4936:0:0, v4936:0:0) :|: v4043:0:0 > 2 && v4044:0:0 > 1 && v4932:0:0 > -1 && v4040:0:0 > 1 && v4046:0:0 > 1 && v4047:0:0 > 0 && sum~cons_1~v4932:0:0 = 1 + v4932:0:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (12) RankingReductionPairProof (EQUIVALENT) 30.64/9.50 Interpretation: 30.64/9.50 [ f_684 ] = f_684_4 30.64/9.50 30.64/9.50 The following rules are decreasing: 30.64/9.50 f_684(v4040:0:0, v4043:0:0, v4044:0:0, sum~cons_1~v4932:0:0, v4046:0:0, v4047:0:0) -> f_684(1 + v4932:0:0, v4043:0:0, v4044:0:0, v4932:0:0, 1 + v4936:0:0, v4936:0:0) :|: v4043:0:0 > 2 && v4044:0:0 > 1 && v4932:0:0 > -1 && v4040:0:0 > 1 && v4046:0:0 > 1 && v4047:0:0 > 0 && sum~cons_1~v4932:0:0 = 1 + v4932:0:0 30.64/9.50 30.64/9.50 The following rules are bounded: 30.64/9.50 f_684(v4040:0:0, v4043:0:0, v4044:0:0, sum~cons_1~v4932:0:0, v4046:0:0, v4047:0:0) -> f_684(1 + v4932:0:0, v4043:0:0, v4044:0:0, v4932:0:0, 1 + v4936:0:0, v4936:0:0) :|: v4043:0:0 > 2 && v4044:0:0 > 1 && v4932:0:0 > -1 && v4040:0:0 > 1 && v4046:0:0 > 1 && v4047:0:0 > 0 && sum~cons_1~v4932:0:0 = 1 + v4932:0:0 30.64/9.50 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (13) 30.64/9.50 YES 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (14) 30.64/9.50 Obligation: 30.64/9.50 SCC 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (15) SCC2IRS (SOUND) 30.64/9.50 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 30.64/9.50 Generated rules. Obtained 38 rulesP rules: 30.64/9.50 f_538(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1655, 1, v1657, v1658, 0, v1660, v1661, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_541(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1655, 1, v1657, v1658, 0, v1660, v1661, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: 0 = 0 30.64/9.50 f_541(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1655, 1, v1657, v1658, 0, v1660, v1661, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_544(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: 0 = 0 30.64/9.50 f_544(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_547(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: 0 < v1661 && 0 <= v1662 30.64/9.50 f_547(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_551(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: 0 = 0 30.64/9.50 f_551(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_554(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: TRUE 30.64/9.50 f_554(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_558(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: 0 = 0 30.64/9.50 f_558(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1657, v1658, v1655, 0, v1660, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_562(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: 0 = 0 30.64/9.50 f_562(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_565(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 < v1662 && 2 <= v1661 30.64/9.50 f_565(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_569(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_569(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_572(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_572(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_576(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_576(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1658, v1657, v1655, 0, v1660, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_580(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_580(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_583(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 < v1660 && 2 <= v1658 && 2 <= v1654 30.64/9.50 f_583(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_587(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_587(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_590(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_590(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_593(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_593(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_596(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_596(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1657, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_598(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_598(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_600(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_600(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, v1655, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_602(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_602(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_604(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_604(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_606(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_606(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_608(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_608(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1658, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_610(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_610(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_612(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 1 + v2995 = v1660 && 0 <= v2995 30.64/9.50 f_612(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_614(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_614(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_616(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_616(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_618(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_618(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_620(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_620(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_622(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_622(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_624(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_624(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_626(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_626(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_628(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 1 + v3003 = v2999 30.64/9.50 f_628(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_631(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_631(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_633(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_633(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_635(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_635(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 2, 4, 8) -> f_536(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1661, 1, v1662, v1660, 0, v2995, v2999, v3003, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: TRUE 30.64/9.50 f_536(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1655, 1, v1657, v1658, 0, v1660, v1661, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) -> f_538(v1645, v1646, v1647, v1648, v1649, v1650, v1651, v1652, v1653, v1654, v1655, 1, v1657, v1658, 0, v1660, v1661, v1662, v1663, v1664, v1665, v1666, v1667, v1668, v1669, 3, 7, 4, 8) :|: TRUE 30.64/9.50 Combined rules. Obtained 1 rulesP rules: 30.64/9.50 f_538(v1645:0, v1646:0, v1647:0, v1648:0, v1649:0, v1650:0, v1651:0, v1652:0, v1653:0, v1654:0, v1655:0, 1, v1657:0, v1658:0, 0, 1 + v2995:0, v1661:0, v1662:0, v1663:0, v1664:0, v1665:0, v1666:0, v1667:0, v1668:0, v1669:0, 3, 7, 4, 8) -> f_538(v1645:0, v1646:0, v1647:0, v1648:0, v1649:0, v1650:0, v1651:0, v1652:0, v1653:0, v1654:0, v1661:0, 1, v1662:0, 1 + v2995:0, 0, v2995:0, 1 + v3003:0, v3003:0, v1663:0, v1664:0, v1665:0, v1666:0, v1667:0, v1668:0, v1669:0, 3, 7, 4, 8) :|: v1661:0 > 1 && v1662:0 > 0 && v1658:0 > 1 && v2995:0 > -1 && v1654:0 > 1 30.64/9.50 Filtered unneeded arguments: 30.64/9.50 f_538(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) -> f_538(x10, x14, x16, x17, x18) 30.64/9.50 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 30.64/9.50 f_538(v1654:0, v1658:0, sum~cons_1~v2995:0, v1661:0, v1662:0) -> f_538(v1654:0, 1 + v2995:0, v2995:0, 1 + v3003:0, v3003:0) :|: v1662:0 > 0 && v1661:0 > 1 && v1658:0 > 1 && v1654:0 > 1 && v2995:0 > -1 && sum~cons_1~v2995:0 = 1 + v2995:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (16) 30.64/9.50 Obligation: 30.64/9.50 Rules: 30.64/9.50 f_538(v1654:0, v1658:0, sum~cons_1~v2995:0, v1661:0, v1662:0) -> f_538(v1654:0, 1 + v2995:0, v2995:0, 1 + v3003:0, v3003:0) :|: v1662:0 > 0 && v1661:0 > 1 && v1658:0 > 1 && v1654:0 > 1 && v2995:0 > -1 && sum~cons_1~v2995:0 = 1 + v2995:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (17) IntTRSCompressionProof (EQUIVALENT) 30.64/9.50 Compressed rules. 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (18) 30.64/9.50 Obligation: 30.64/9.50 Rules: 30.64/9.50 f_538(v1654:0:0, v1658:0:0, sum~cons_1~v2995:0:0, v1661:0:0, v1662:0:0) -> f_538(v1654:0:0, 1 + v2995:0:0, v2995:0:0, 1 + v3003:0:0, v3003:0:0) :|: v1654:0:0 > 1 && v2995:0:0 > -1 && v1658:0:0 > 1 && v1661:0:0 > 1 && v1662:0:0 > 0 && sum~cons_1~v2995:0:0 = 1 + v2995:0:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (19) RankingReductionPairProof (EQUIVALENT) 30.64/9.50 Interpretation: 30.64/9.50 [ f_538 ] = f_538_3 30.64/9.50 30.64/9.50 The following rules are decreasing: 30.64/9.50 f_538(v1654:0:0, v1658:0:0, sum~cons_1~v2995:0:0, v1661:0:0, v1662:0:0) -> f_538(v1654:0:0, 1 + v2995:0:0, v2995:0:0, 1 + v3003:0:0, v3003:0:0) :|: v1654:0:0 > 1 && v2995:0:0 > -1 && v1658:0:0 > 1 && v1661:0:0 > 1 && v1662:0:0 > 0 && sum~cons_1~v2995:0:0 = 1 + v2995:0:0 30.64/9.50 30.64/9.50 The following rules are bounded: 30.64/9.50 f_538(v1654:0:0, v1658:0:0, sum~cons_1~v2995:0:0, v1661:0:0, v1662:0:0) -> f_538(v1654:0:0, 1 + v2995:0:0, v2995:0:0, 1 + v3003:0:0, v3003:0:0) :|: v1654:0:0 > 1 && v2995:0:0 > -1 && v1658:0:0 > 1 && v1661:0:0 > 1 && v1662:0:0 > 0 && sum~cons_1~v2995:0:0 = 1 + v2995:0:0 30.64/9.50 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (20) 30.64/9.50 YES 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (21) 30.64/9.50 Obligation: 30.64/9.50 SCC 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (22) SCC2IRS (SOUND) 30.64/9.50 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 30.64/9.50 Generated rules. Obtained 37 rulesP rules: 30.64/9.50 f_422(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v852, 1, v854, v855, v856, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_425(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_425(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_427(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 < v856 && 0 <= v857 30.64/9.50 f_427(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_430(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_430(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_433(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_433(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_437(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_437(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v854, v855, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_441(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_441(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_444(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_444(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_447(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_447(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_449(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_449(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v854, v852, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_452(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_452(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_455(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 < v857 && 2 <= v856 30.64/9.50 f_455(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_459(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_459(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_463(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_463(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_466(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_466(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_470(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_470(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v854, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_473(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_473(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_476(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_476(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v852, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_479(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_479(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_481(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: v856 < v855 && 3 <= v855 30.64/9.50 f_481(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_484(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_484(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_487(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_487(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_490(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_490(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_493(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_493(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_496(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_496(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_499(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_499(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_502(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_502(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_505(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_505(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_508(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_508(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_511(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_511(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_514(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_514(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_517(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 1 + v1522 = v1514 30.64/9.50 f_517(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_520(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 f_520(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_523(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_523(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_526(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_526(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_529(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_529(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_420(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v856, 1, v855, v857, v1514, v1522, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: TRUE 30.64/9.50 f_420(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v852, 1, v854, v855, v856, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) -> f_422(v842, v843, v844, v845, v846, v847, v848, v849, v850, v851, v852, 1, v854, v855, v856, v857, v858, v859, v860, v861, v862, v863, v864, 0, 3, 7, 2, 4, 8) :|: 0 = 0 30.64/9.50 Combined rules. Obtained 1 rulesP rules: 30.64/9.50 f_422(v842:0, v843:0, v844:0, v845:0, v846:0, v847:0, v848:0, v849:0, v850:0, v851:0, v852:0, 1, v854:0, v855:0, v856:0, v857:0, v858:0, v859:0, v860:0, v861:0, v862:0, v863:0, v864:0, 0, 3, 7, 2, 4, 8) -> f_422(v842:0, v843:0, v844:0, v845:0, v846:0, v847:0, v848:0, v849:0, v850:0, v851:0, v856:0, 1, v855:0, v857:0, 1 + v1522:0, v1522:0, v858:0, v859:0, v860:0, v861:0, v862:0, v863:0, v864:0, 0, 3, 7, 2, 4, 8) :|: v856:0 > 1 && v857:0 > 0 && v856:0 < v855:0 && v855:0 > 2 30.64/9.50 Filtered unneeded arguments: 30.64/9.50 f_422(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) -> f_422(x14, x15, x16) 30.64/9.50 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 30.64/9.50 f_422(v855:0, v856:0, v857:0) -> f_422(v857:0, 1 + v1522:0, v1522:0) :|: v857:0 > 0 && v856:0 > 1 && v855:0 > 2 && v856:0 < v855:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (23) 30.64/9.50 Obligation: 30.64/9.50 Rules: 30.64/9.50 f_422(v855:0, v856:0, v857:0) -> f_422(v857:0, 1 + v1522:0, v1522:0) :|: v857:0 > 0 && v856:0 > 1 && v855:0 > 2 && v856:0 < v855:0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (24) IntTRSCompressionProof (EQUIVALENT) 30.64/9.50 Compressed rules. 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (25) 30.64/9.50 Obligation: 30.64/9.50 Rules: 30.64/9.50 f_422(v855:0:0, v856:0:0, v857:0:0) -> f_422(v857:0:0, 1 + v1522:0:0, v1522:0:0) :|: v855:0:0 > 2 && v856:0:0 < v855:0:0 && v856:0:0 > 1 && v857:0:0 > 0 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (26) RankingReductionPairProof (EQUIVALENT) 30.64/9.50 Interpretation: 30.64/9.50 [ f_422 ] = 1/2*f_422_1 + -1/2*f_422_2 + 1/2*f_422_3 30.64/9.50 30.64/9.50 The following rules are decreasing: 30.64/9.50 f_422(v855:0:0, v856:0:0, v857:0:0) -> f_422(v857:0:0, 1 + v1522:0:0, v1522:0:0) :|: v855:0:0 > 2 && v856:0:0 < v855:0:0 && v856:0:0 > 1 && v857:0:0 > 0 30.64/9.50 30.64/9.50 The following rules are bounded: 30.64/9.50 f_422(v855:0:0, v856:0:0, v857:0:0) -> f_422(v857:0:0, 1 + v1522:0:0, v1522:0:0) :|: v855:0:0 > 2 && v856:0:0 < v855:0:0 && v856:0:0 > 1 && v857:0:0 > 0 30.64/9.50 30.64/9.50 30.64/9.50 ---------------------------------------- 30.64/9.50 30.64/9.50 (27) 30.64/9.50 YES 30.82/9.55 EOF