/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, 177 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 12.8 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 1 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 132 ms] (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] (11) IntTRS (12) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 118 ms] (16) IntTRS (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 22 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 74 ms] (23) IntTRS (24) RankingReductionPairProof [EQUIVALENT, 0 ms] (25) 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: "test_fun" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (x i32, y i32, z i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 %3 = alloca i32, align 4 %x_ref = alloca *i32, align 8 %y_ref = alloca *i32, align 8 %z_ref = alloca *i32, align 8 %c = alloca *i32, align 8 store %x, %1 store %y, %2 store %z, %3 %4 = alloca i8, numElementsLit: 4 %5 = bitcast *i8 %4 to *i32 store %5, %x_ref %6 = alloca i8, numElementsLit: 4 %7 = bitcast *i8 %6 to *i32 store %7, %y_ref %8 = alloca i8, numElementsLit: 4 %9 = bitcast *i8 %8 to *i32 store %9, %z_ref %10 = alloca i8, numElementsLit: 4 %11 = bitcast *i8 %10 to *i32 store %11, %c %12 = load %1 %13 = load %x_ref store %12, %13 %14 = load %2 %15 = load %y_ref store %14, %15 %16 = load %3 %17 = load %z_ref store %16, %17 %18 = load %c store 0, %18 br %19 19: %20 = load %x_ref %21 = load %20 %22 = load %y_ref %23 = load %22 %24 = icmp slt %21 %23 br %24, %25, %46 25: %26 = load %x_ref %27 = load %26 %28 = load %z_ref %29 = load %28 %30 = icmp slt %27 %29 br %30, %31, %36 31: %32 = load %x_ref %33 = load %32 %34 = add %33 1 %35 = load %x_ref store %34, %35 br %41 36: %37 = load %z_ref %38 = load %37 %39 = add %38 1 %40 = load %z_ref store %39, %40 br %41 41: %42 = load %c %43 = load %42 %44 = add %43 1 %45 = load %c store %44, %45 br %19 46: %47 = load %c %48 = load %47 ret %48 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() %3 = call i32 @__VERIFIER_nondet_int() %4 = call i32 @__VERIFIER_nondet_int() %5 = call i32 @test_fun(i32 %2, i32 %3, i32 %4) ret %5 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 51 rulesP rules: f_967(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2925, v2926, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8) -> f_968(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8) :|: 0 = 0 f_968(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8) -> f_969(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: v2941 = 1 + v2926 && 2 <= v2941 f_969(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_970(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_970(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_971(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: TRUE f_971(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_972(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: TRUE f_972(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_973(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_973(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_974(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_974(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_975(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_975(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_976(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_976(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_977(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_977(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_978(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: TRUE f_978(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_979(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_979(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_980(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_980(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_981(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_981(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2926, v2941, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_982(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, 0, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) :|: 0 = 0 f_982(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, 0, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8, 2) -> f_983(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_983(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_984(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: TRUE f_984(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_985(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_985(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2924, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_986(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_986(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_987(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: v2927 = 1 + v2921 f_987(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_988(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_988(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_989(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: TRUE f_989(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_990(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) :|: TRUE f_990(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8, 2) -> f_991(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, v2927, v2926, v2941, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 0, 3, 7, 4, 8) :|: TRUE f_991(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3128, v3129, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8) -> f_992(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3128, v3129, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8) :|: 0 = 0 f_992(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3128, v3129, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8) -> f_993(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8) :|: 0 = 0 f_993(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8) -> f_994(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: v3198 = 1 + v3129 && 2 <= v3198 f_994(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_995(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_995(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_996(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: TRUE f_996(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_997(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: TRUE f_997(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_998(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_998(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3125, 1, v3127, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_999(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_999(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1000(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1000(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1001(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1001(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1002(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: v3127 < v3112 f_1002(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1004(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1004(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1006(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: TRUE f_1006(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1008(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1008(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1010(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1010(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1012(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1012(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1014(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_1014(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 0, 3, 7, 4, 8, 2) -> f_1015(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: 0 = 0 f_1015(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1016(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: TRUE f_1016(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1017(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: 0 = 0 f_1017(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1018(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: 0 = 0 f_1018(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1019(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: v3356 = 1 + v3127 f_1019(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1020(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: 0 = 0 f_1020(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1021(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: TRUE f_1021(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_1022(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) :|: TRUE f_1022(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3356, v3129, v3198, v3125, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8, 2) -> f_966(v3111, v3112, v3113, v3114, v3115, v3116, v3117, v3118, v3119, v3120, v3121, v3122, v3123, v3124, v3127, 1, 0, v3125, v3129, v3198, v3356, v3130, v3131, v3132, v3133, v3134, v3135, v3136, v3137, v3138, v3139, v3140, v3141, v3142, 3, 7, 4, 8) :|: TRUE f_966(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2925, v2926, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8) -> f_967(v2907, v2908, v2909, v2910, v2911, v2912, v2913, v2914, v2915, v2916, v2917, v2918, v2919, v2920, v2921, 1, 0, v2924, v2925, v2926, v2927, v2928, v2929, v2930, v2931, v2932, v2933, v2934, v2935, v2936, v2937, v2938, v2939, v2940, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_967(v2907:0, v2908:0, v2909:0, v2910:0, v2911:0, v2912:0, v2913:0, v2914:0, v2915:0, v2916:0, v2917:0, v2918:0, v2919:0, v2920:0, v2921:0, 1, 0, v2924:0, v2925:0, v2926:0, 1 + v2921:0, v2928:0, v2929:0, v2930:0, v2931:0, v2932:0, v2933:0, v2934:0, v2935:0, v2936:0, v2937:0, v2938:0, v2939:0, v2940:0, 3, 7, 4, 8) -> f_967(v2907:0, v2908:0, v2909:0, v2910:0, v2911:0, v2912:0, v2913:0, v2914:0, v2915:0, v2916:0, v2917:0, v2918:0, v2919:0, v2920:0, 1 + v2921:0, 1, 0, v2921:0, 1 + v2926:0, 1 + (1 + v2926:0), 1 + (1 + v2921:0), v2928:0, v2929:0, v2930:0, v2931:0, v2932:0, v2933:0, v2934:0, v2935:0, v2936:0, v2937:0, v2938:0, v2939:0, v2940:0, 3, 7, 4, 8) :|: v2908:0 > 1 + v2921:0 && v2926:0 > 0 Filtered unneeded arguments: f_967(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38) -> f_967(x2, x15, x20, x21) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_967(v2908:0, v2921:0, v2926:0, sum~cons_1~v2921:0) -> f_967(v2908:0, 1 + v2921:0, 1 + (1 + v2926:0), 1 + (1 + v2921:0)) :|: v2908:0 > 1 + v2921:0 && v2926:0 > 0 && sum~cons_1~v2921:0 = 1 + v2921:0 ---------------------------------------- (9) Obligation: Rules: f_967(v2908:0, v2921:0, v2926:0, sum~cons_1~v2921:0) -> f_967(v2908:0, 1 + v2921:0, 1 + (1 + v2926:0), 1 + (1 + v2921:0)) :|: v2908:0 > 1 + v2921:0 && v2926:0 > 0 && sum~cons_1~v2921:0 = 1 + v2921:0 ---------------------------------------- (10) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: f_967(v2908:0:0, v2921:0:0, v2926:0:0, sum~cons_1~v2921:0:0) -> f_967(v2908:0:0, 1 + v2921:0:0, 1 + (1 + v2926:0:0), 1 + (1 + v2921:0:0)) :|: v2908:0:0 > 1 + v2921:0:0 && v2926:0:0 > 0 && sum~cons_1~v2921:0:0 = 1 + v2921:0:0 ---------------------------------------- (12) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f_967(x, x1, x2, x3)] = -2 + x - x1 The following rules are decreasing: f_967(v2908:0:0, v2921:0:0, v2926:0:0, sum~cons_1~v2921:0:0) -> f_967(v2908:0:0, 1 + v2921:0:0, 1 + (1 + v2926:0:0), 1 + (1 + v2921:0:0)) :|: v2908:0:0 > 1 + v2921:0:0 && v2926:0:0 > 0 && sum~cons_1~v2921:0:0 = 1 + v2921:0:0 The following rules are bounded: f_967(v2908:0:0, v2921:0:0, v2926:0:0, sum~cons_1~v2921:0:0) -> f_967(v2908:0:0, 1 + v2921:0:0, 1 + (1 + v2926:0:0), 1 + (1 + v2921:0:0)) :|: v2908:0:0 > 1 + v2921:0:0 && v2926:0:0 > 0 && sum~cons_1~v2921:0:0 = 1 + v2921:0:0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 27 rulesP rules: f_848(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2171, 1, v2173, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_850(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_850(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_852(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_852(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_854(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_854(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_856(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: v2173 < v2158 f_856(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_860(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_860(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_864(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: TRUE f_864(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_868(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_868(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_872(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_872(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_876(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_876(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_880(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_880(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_883(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: v2173 < v2159 f_883(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_887(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_887(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_891(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: TRUE f_891(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_895(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_895(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2171, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_899(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_899(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_903(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: v2305 = 1 + v2173 f_903(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_907(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_907(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_911(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: TRUE f_911(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_915(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: TRUE f_915(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_918(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_918(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_921(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 f_921(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_924(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) :|: v2519 = 1 + v2175 && 2 <= v2519 f_924(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) -> f_927(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) :|: 0 = 0 f_927(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) -> f_931(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) :|: TRUE f_931(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) -> f_935(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) :|: TRUE f_935(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8, 2) -> f_846(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2173, 1, v2305, v2175, v2519, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: TRUE f_846(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2171, 1, v2173, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) -> f_848(v2157, v2158, v2159, v2160, v2161, v2162, v2163, v2164, v2165, v2166, v2167, v2168, v2169, v2170, v2171, 1, v2173, v2174, v2175, v2176, v2177, v2178, v2179, v2180, v2181, v2182, v2183, v2184, v2185, v2186, v2187, v2188, 0, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_848(v2157:0, v2158:0, v2159:0, v2160:0, v2161:0, v2162:0, v2163:0, v2164:0, v2165:0, v2166:0, v2167:0, v2168:0, v2169:0, v2170:0, v2171:0, 1, v2173:0, v2174:0, v2175:0, v2176:0, v2177:0, v2178:0, v2179:0, v2180:0, v2181:0, v2182:0, v2183:0, v2184:0, v2185:0, v2186:0, v2187:0, v2188:0, 0, 3, 7, 4, 8) -> f_848(v2157:0, v2158:0, v2159:0, v2160:0, v2161:0, v2162:0, v2163:0, v2164:0, v2165:0, v2166:0, v2167:0, v2168:0, v2169:0, v2170:0, v2173:0, 1, 1 + v2173:0, v2175:0, 1 + v2175:0, v2176:0, v2177:0, v2178:0, v2179:0, v2180:0, v2181:0, v2182:0, v2183:0, v2184:0, v2185:0, v2186:0, v2187:0, v2188:0, 0, 3, 7, 4, 8) :|: v2173:0 < v2158:0 && v2175:0 > 0 && v2173:0 < v2159:0 Filtered unneeded arguments: f_848(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37) -> f_848(x2, x3, x17, x19) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_848(v2158:0, v2159:0, v2173:0, v2175:0) -> f_848(v2158:0, v2159:0, 1 + v2173:0, 1 + v2175:0) :|: v2175:0 > 0 && v2173:0 < v2159:0 && v2173:0 < v2158:0 ---------------------------------------- (16) Obligation: Rules: f_848(v2158:0, v2159:0, v2173:0, v2175:0) -> f_848(v2158:0, v2159:0, 1 + v2173:0, 1 + v2175:0) :|: v2175:0 > 0 && v2173:0 < v2159:0 && v2173:0 < v2158:0 ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f_848(v2158:0:0, v2159:0:0, v2173:0:0, v2175:0:0) -> f_848(v2158:0:0, v2159:0:0, 1 + v2173:0:0, 1 + v2175:0:0) :|: v2175:0:0 > 0 && v2173:0:0 < v2159:0:0 && v2173:0:0 < v2158:0:0 ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_848 ] = -1*f_848_3 + f_848_1 The following rules are decreasing: f_848(v2158:0:0, v2159:0:0, v2173:0:0, v2175:0:0) -> f_848(v2158:0:0, v2159:0:0, 1 + v2173:0:0, 1 + v2175:0:0) :|: v2175:0:0 > 0 && v2173:0:0 < v2159:0:0 && v2173:0:0 < v2158:0:0 The following rules are bounded: f_848(v2158:0:0, v2159:0:0, v2173:0:0, v2175:0:0) -> f_848(v2158:0:0, v2159:0:0, 1 + v2173:0:0, 1 + v2175:0:0) :|: v2175:0:0 > 0 && v2173:0:0 < v2159:0:0 && v2173:0:0 < v2158:0:0 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 26 rulesP rules: f_832(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_835(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_835(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_838(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_838(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_841(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_841(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_844(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_844(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_847(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: TRUE f_847(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_849(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_849(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_851(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_851(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_853(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_853(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_855(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_855(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_859(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: v2104 <= v2087 f_859(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_863(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_863(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_867(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: TRUE f_867(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_871(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_871(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2102, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_875(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_875(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_879(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: v2222 = 1 + v2104 f_879(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_882(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_882(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_886(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: TRUE f_886(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_890(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: TRUE f_890(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_894(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_894(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_898(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 f_898(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_902(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) :|: v2304 = 1 + v2106 && 2 <= v2304 f_902(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) -> f_906(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) :|: 0 = 0 f_906(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) -> f_910(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) :|: TRUE f_910(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) -> f_914(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) :|: TRUE f_914(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8, 2) -> f_829(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2104, 0, v2222, v2106, v2304, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: TRUE f_829(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) -> f_832(v2087, v2088, v2089, v2090, v2091, v2092, v2093, v2094, v2095, v2096, v2097, v2098, v2099, v2100, 1, v2102, 0, v2104, v2105, v2106, v2107, v2108, v2109, v2110, v2111, v2112, v2113, v2114, v2115, v2116, v2117, v2118, v2119, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_832(v2087:0, v2088:0, v2089:0, v2090:0, v2091:0, v2092:0, v2093:0, v2094:0, v2095:0, v2096:0, v2097:0, v2098:0, v2099:0, v2100:0, 1, v2102:0, 0, v2104:0, v2105:0, v2106:0, v2107:0, v2108:0, v2109:0, v2110:0, v2111:0, v2112:0, v2113:0, v2114:0, v2115:0, v2116:0, v2117:0, v2118:0, v2119:0, 3, 7, 4, 8) -> f_832(v2087:0, v2088:0, v2089:0, v2090:0, v2091:0, v2092:0, v2093:0, v2094:0, v2095:0, v2096:0, v2097:0, v2098:0, v2099:0, v2100:0, 1, v2104:0, 0, 1 + v2104:0, v2106:0, 1 + v2106:0, v2107:0, v2108:0, v2109:0, v2110:0, v2111:0, v2112:0, v2113:0, v2114:0, v2115:0, v2116:0, v2117:0, v2118:0, v2119:0, 3, 7, 4, 8) :|: v2106:0 > 0 && v2104:0 <= v2087:0 Filtered unneeded arguments: f_832(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37) -> f_832(x1, x18, x20) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_832(v2087:0, v2104:0, v2106:0) -> f_832(v2087:0, 1 + v2104:0, 1 + v2106:0) :|: v2106:0 > 0 && v2104:0 <= v2087:0 ---------------------------------------- (23) Obligation: Rules: f_832(v2087:0, v2104:0, v2106:0) -> f_832(v2087:0, 1 + v2104:0, 1 + v2106:0) :|: v2106:0 > 0 && v2104:0 <= v2087:0 ---------------------------------------- (24) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_832 ] = -1*f_832_2 + f_832_1 The following rules are decreasing: f_832(v2087:0, v2104:0, v2106:0) -> f_832(v2087:0, 1 + v2104:0, 1 + v2106:0) :|: v2106:0 > 0 && v2104:0 <= v2087:0 The following rules are bounded: f_832(v2087:0, v2104:0, v2106:0) -> f_832(v2087:0, 1 + v2104:0, 1 + v2106:0) :|: v2106:0 > 0 && v2104:0 <= v2087:0 ---------------------------------------- (25) YES