97.33/35.16 YES 97.71/35.26 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 97.71/35.26 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 97.71/35.26 97.71/35.26 97.71/35.26 Termination of the given C Problem could be proven: 97.71/35.26 97.71/35.26 (0) C Problem 97.71/35.26 (1) CToLLVMProof [EQUIVALENT, 173 ms] 97.71/35.26 (2) LLVM problem 97.71/35.26 (3) LLVMToTerminationGraphProof [EQUIVALENT, 21.5 s] 97.71/35.26 (4) LLVM Symbolic Execution Graph 97.71/35.26 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 97.71/35.26 (6) AND 97.71/35.26 (7) LLVM Symbolic Execution SCC 97.71/35.26 (8) SCC2IRS [SOUND, 133 ms] 97.71/35.26 (9) IntTRS 97.71/35.26 (10) IRS2T2 [EQUIVALENT, 0 ms] 97.71/35.26 (11) T2IntSys 97.71/35.26 (12) T2 [EQUIVALENT, 1173 ms] 97.71/35.26 (13) YES 97.71/35.26 (14) LLVM Symbolic Execution SCC 97.71/35.26 (15) SCC2IRS [SOUND, 83 ms] 97.71/35.26 (16) IntTRS 97.71/35.26 (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] 97.71/35.26 (18) IntTRS 97.71/35.26 (19) RankingReductionPairProof [EQUIVALENT, 0 ms] 97.71/35.26 (20) YES 97.71/35.26 (21) LLVM Symbolic Execution SCC 97.71/35.26 (22) SCC2IRS [SOUND, 73 ms] 97.71/35.26 (23) IntTRS 97.71/35.26 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 97.71/35.26 (25) IntTRS 97.71/35.26 (26) RankingReductionPairProof [EQUIVALENT, 12 ms] 97.71/35.26 (27) YES 97.71/35.26 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (0) 97.71/35.26 Obligation: 97.71/35.26 c file /export/starexec/sandbox/benchmark/theBenchmark.c 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (1) CToLLVMProof (EQUIVALENT) 97.71/35.26 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (2) 97.71/35.26 Obligation: 97.71/35.26 LLVM Problem 97.71/35.26 97.71/35.26 Aliases: 97.71/35.26 97.71/35.26 Data layout: 97.71/35.26 97.71/35.26 "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" 97.71/35.26 97.71/35.26 Machine: 97.71/35.26 97.71/35.26 "x86_64-pc-linux-gnu" 97.71/35.26 97.71/35.26 Type definitions: 97.71/35.26 97.71/35.26 Global variables: 97.71/35.26 97.71/35.26 Function declarations and definitions: 97.71/35.26 97.71/35.26 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 97.71/35.26 *BasicFunctionTypename: "test_fun" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (a *i32, N i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 97.71/35.26 0: 97.71/35.26 %1 = alloca *i32, align 8 97.71/35.26 %2 = alloca i32, align 4 97.71/35.26 %i = alloca i32, align 4 97.71/35.26 %res = alloca i32, align 4 97.71/35.26 store %a, %1 97.71/35.26 store %N, %2 97.71/35.26 store 0, %res 97.71/35.26 store 0, %i 97.71/35.26 br %3 97.71/35.26 3: 97.71/35.26 %4 = load %i 97.71/35.26 %5 = load %2 97.71/35.26 %6 = icmp slt %4 %5 97.71/35.26 br %6, %7, %28 97.71/35.26 7: 97.71/35.26 br %8 97.71/35.26 8: 97.71/35.26 %9 = load %i 97.71/35.26 %10 = sext i32 %9 to i64 97.71/35.26 %11 = load %1 97.71/35.26 %12 = getelementptr %11, %10 97.71/35.26 %13 = load %12 97.71/35.26 %14 = icmp sgt %13 0 97.71/35.26 br %14, %15, %24 97.71/35.26 15: 97.71/35.26 %16 = load %i 97.71/35.26 %17 = sext i32 %16 to i64 97.71/35.26 %18 = load %1 97.71/35.26 %19 = getelementptr %18, %17 97.71/35.26 %20 = load %19 97.71/35.26 %21 = add %20 -1 97.71/35.26 store %21, %19 97.71/35.26 %22 = load %res 97.71/35.26 %23 = add %22 1 97.71/35.26 store %23, %res 97.71/35.26 br %8 97.71/35.26 24: 97.71/35.26 br %25 97.71/35.26 25: 97.71/35.26 %26 = load %i 97.71/35.26 %27 = add %26 1 97.71/35.26 store %27, %i 97.71/35.26 br %3 97.71/35.26 28: 97.71/35.26 %29 = load %res 97.71/35.26 ret %29 97.71/35.26 97.71/35.26 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 97.71/35.26 0: 97.71/35.26 %1 = alloca i32, align 4 97.71/35.26 %array_size = alloca i32, align 4 97.71/35.26 %numbers = alloca *i32, align 8 97.71/35.26 store 0, %1 97.71/35.26 %2 = call i32 @__VERIFIER_nondet_int() 97.71/35.26 store %2, %array_size 97.71/35.26 %3 = load %array_size 97.71/35.26 %4 = icmp slt %3 1 97.71/35.26 br %4, %5, %6 97.71/35.26 5: 97.71/35.26 store 1, %array_size 97.71/35.26 br %6 97.71/35.26 6: 97.71/35.26 %7 = load %array_size 97.71/35.26 %8 = sext i32 %7 to i64 97.71/35.26 %9 = mul %8 4 97.71/35.26 %10 = alloca i8, numElementsLit: %9 97.71/35.26 %11 = bitcast *i8 %10 to *i32 97.71/35.26 store %11, %numbers 97.71/35.26 %12 = load %numbers 97.71/35.26 %13 = load %array_size 97.71/35.26 %14 = call i32 @test_fun(*i32 %12, i32 %13) 97.71/35.26 %15 = load %1 97.71/35.26 ret %15 97.71/35.26 97.71/35.26 97.71/35.26 Analyze Termination of all function calls matching the pattern: 97.71/35.26 main() 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (3) LLVMToTerminationGraphProof (EQUIVALENT) 97.71/35.26 Constructed symbolic execution graph for LLVM program and proved memory safety. 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (4) 97.71/35.26 Obligation: 97.71/35.26 SE Graph 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (5) SymbolicExecutionGraphToSCCProof (SOUND) 97.71/35.26 Splitted symbolic execution graph to 3 SCCs. 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (6) 97.71/35.26 Complex Obligation (AND) 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (7) 97.71/35.26 Obligation: 97.71/35.26 SCC 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (8) SCC2IRS (SOUND) 97.71/35.26 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 97.71/35.26 Generated rules. Obtained 55 rulesP rules: 97.71/35.26 f_1082(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2471, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) -> f_1086(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2471, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.26 f_1086(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2471, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) -> f_1090(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.26 f_1090(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) -> f_1093(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.26 f_1093(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) -> f_1095(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2473, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: v2606 = v2463 + 4 * v2469 && 5 <= v2606 97.71/35.26 f_1095(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2473, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1097(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.26 f_1097(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1100(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: 0 < v2607 97.71/35.26 f_1097(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1101(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: v2607 <= 0 97.71/35.26 f_1100(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1104(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, v2475, v2476, 0, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.26 f_1104(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, v2475, v2476, 0, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1108(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, v2475, v2476, 0, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.26 f_1108(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, v2475, v2476, 0, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1174(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, v2475, v2476, 1, 0, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1174(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3259, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1176(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3259, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1176(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3259, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1178(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1178(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1180(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1180(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3260, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1182(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, v3260, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: v3257 = v3249 + 4 * v3255 97.71/35.26 f_1182(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3261, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, v3260, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1184(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, v3260, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1184(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3262, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, v3260, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1186(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, v3260, v3262, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: 1 + v3458 = v3258 && 0 <= v3458 97.71/35.26 f_1186(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, v3260, v3262, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1187(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1187(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3263, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1188(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1188(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1189(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3460, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: v3460 = 1 + v3264 && 2 <= v3460 97.71/35.26 f_1189(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3460, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1190(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3460, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1190(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3460, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1191(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3460, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1191(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3458, v3264, v3460, v3265, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) -> f_1160(v3249, v3250, v3251, v3252, v3253, v3254, v3255, 1, v3257, v3258, v3265, v3458, v3264, v3460, v3266, v3272, v3267, v3273, v3268, v3274, v3275, v3276, v3277, v3278, v3279, v3281, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1160(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1162(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1162(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1164(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1164(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1166(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1166(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1167(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: v3191 = v3183 + 4 * v3189 97.71/35.26 f_1167(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3192, v3193, v3194, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1168(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1168(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1169(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 < v3194 && 2 <= v3192 97.71/35.26 f_1168(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1170(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: v3194 <= 0 && v3192 = 1 && v3194 = 0 && 0 = 0 97.71/35.26 f_1169(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1171(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1171(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1173(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1173(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3193, v3192, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1174(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, v3194, v3189, v3191, v3192, v3194, v3195, v3196, v3193, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, 0, v3280, v3283, v3269, v3270, v3271, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1170(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1172(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1172(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1175(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1175(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1177(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1177(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3193, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1179(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: 0 = 0 97.71/35.26 f_1179(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1181(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3400, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: v3400 = 1 + v3189 && 2 <= v3400 97.71/35.26 f_1181(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3400, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1183(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3400, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1183(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3400, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1185(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3400, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) :|: TRUE 97.71/35.26 f_1185(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, v3400, v3195, v3196, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v3211, v3214, v3200, v3201, v3202, 3, 7, 4, 2, 5, 8) -> f_1130(v3183, v3184, v3185, v3186, v3187, v3188, v3189, 1, v3191, 0, 0, v3189, v3191, v3195, v3196, v3400, v3197, v3203, v3198, v3204, v3199, v3205, v3206, v3207, v3208, v3209, v3210, v3212, v2896, v2897, v2898, 3, 7, 4, 8) :|: TRUE 97.71/35.26 f_1130(v2877, v2878, v2879, v2880, v2881, v2882, v2883, 1, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2892, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 8) -> f_1134(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 8) :|: 0 = 0 97.71/35.26 f_1134(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 8) -> f_1138(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 8) :|: 0 = 0 97.71/35.26 f_1138(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 8) -> f_1143(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 2, 8) :|: v2892 < v2878 && 2 <= v2878 && 8 <= v2902 97.71/35.26 f_1143(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 2, 8) -> f_1149(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.26 f_1149(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 2, 8) -> f_1155(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.26 f_1155(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2896, v2897, v2898, 3, 7, 4, 2, 8) -> f_1077(v2877, v2878, v2879, v2880, v2881, v2882, v2892, 1, v2883, v2885, v2886, 0, v2888, v2889, v2890, v2891, v2893, v2899, v2894, v2900, v2895, v2901, v2902, v2903, v2904, v2905, v2906, v2907, v2482, v2483, v2484, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.26 f_1077(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2471, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) -> f_1082(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2471, v2472, v2473, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2482, v2483, v2484, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.26 f_1101(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1105(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.26 f_1105(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1109(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.26 f_1109(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1113(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.26 f_1113(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2471, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1117(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.26 f_1117(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1121(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: v2775 = 1 + v2469 && 2 <= v2775 97.71/35.26 f_1121(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1125(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.26 f_1125(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1129(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.26 f_1129(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2472, v2473, v2482, v2483, v2484, 3, 7, 4, 2, 8, 5) -> f_1130(v2463, v2464, v2465, v2466, v2467, v2468, v2469, 1, v2606, v2607, 0, v2475, v2476, v2477, v2478, v2775, v2479, v2485, v2480, v2486, v2481, v2487, v2488, v2489, v2490, v2491, v2492, v2493, v2896, v2897, v2898, 3, 7, 4, 8) :|: TRUE 97.71/35.26 Combined rules. Obtained 4 rulesP rules: 97.71/35.26 f_1082(v2463:0, v2464:0, v2465:0, v2466:0, v2467:0, v2468:0, v2469:0, 1, v2471:0, v2472:0, v2473:0, 0, v2475:0, v2476:0, v2477:0, v2478:0, v2479:0, v2485:0, v2480:0, v2486:0, v2481:0, v2487:0, v2488:0, v2489:0, v2490:0, v2491:0, v2492:0, v2493:0, v2482:0, v2483:0, v2484:0, 3, 7, 4, 2, 8) -> f_1082(v2463:0, v2464:0, v2465:0, v2466:0, v2467:0, v2468:0, 1 + v2469:0, 1, v2469:0, v2463:0 + 4 * v2469:0, v2607:0, 0, v2475:0, v2476:0, v2477:0, v2478:0, v2479:0, v2485:0, v2480:0, v2486:0, v2481:0, v2487:0, v2488:0, v2489:0, v2490:0, v2491:0, v2492:0, v2493:0, v2482:1, v2483:1, v2484:1, 3, 7, 4, 2, 8) :|: v2463:0 + 4 * v2469:0 > 4 && v2607:0 < 1 && v2464:0 > 1 && v2464:0 > 1 + v2469:0 && v2469:0 > 0 && v2488:0 > 7 97.71/35.26 f_1168(v3183:0, v3184:0, v3185:0, v3186:0, v3187:0, v3188:0, v3189:0, 1, v3191:0, 0, v3193:0, 1, v3195:0, v3196:0, v3197:0, v3203:0, v3198:0, v3204:0, v3199:0, v3205:0, v3206:0, v3207:0, v3208:0, v3209:0, v3210:0, v3212:0, 0, v3211:0, v3214:0, v3200:0, v3201:0, v3202:0, 3, 7, 4, 2, 5, 8) -> f_1082(v3183:0, v3184:0, v3185:0, v3186:0, v3187:0, v3188:0, 1 + v3189:0, 1, v3189:0, v3191:0, 0, 0, v3189:0, v3191:0, v3195:0, v3196:0, v3197:0, v3203:0, v3198:0, v3204:0, v3199:0, v3205:0, v3206:0, v3207:0, v3208:0, v3209:0, v3210:0, v3212:0, v2482:0, v2483:0, v2484:0, 3, 7, 4, 2, 8) :|: v3189:0 > 0 && v3184:0 > 1 && v3206:0 > 7 && v3184:0 > 1 + v3189:0 97.71/35.26 f_1082(v2463:0, v2464:0, v2465:0, v2466:0, v2467:0, v2468:0, v2469:0, 1, v2471:0, v2472:0, v2473:0, 0, v2475:0, v2476:0, v2477:0, v2478:0, v2479:0, v2485:0, v2480:0, v2486:0, v2481:0, v2487:0, v2488:0, v2489:0, v2490:0, v2491:0, v2492:0, v2493:0, v2482:0, v2483:0, v2484:0, 3, 7, 4, 2, 8) -> f_1168(v2463:0, v2464:0, v2465:0, v2466:0, v2467:0, v2468:0, v2469:0, 1, v2463:0 + 4 * v2469:0, v3458:0, v2471:0, 1 + v3458:0, v2478:0, 1 + v2478:0, v2479:0, v2485:0, v2480:0, v2486:0, v2481:0, v2487:0, v2488:0, v2489:0, v2490:0, v2491:0, v2492:0, v2493:0, 0, v3211:0, v3214:0, v3200:0, v3201:0, v3202:0, 3, 7, 4, 2, 5, 8) :|: v2463:0 + 4 * v2469:0 > 4 && v3458:0 > -1 && v2478:0 > 0 97.71/35.26 f_1168(v3183:0, v3184:0, v3185:0, v3186:0, v3187:0, v3188:0, v3189:0, 1, v3183:0 + 4 * v3189:0, 1 + v3458:0, v3193:0, v3192:0, v3195:0, v3196:0, v3197:0, v3203:0, v3198:0, v3204:0, v3199:0, v3205:0, v3206:0, v3207:0, v3208:0, v3209:0, v3210:0, v3212:0, 0, v3211:0, v3214:0, v3200:0, v3201:0, v3202:0, 3, 7, 4, 2, 5, 8) -> f_1168(v3183:0, v3184:0, v3185:0, v3186:0, v3187:0, v3188:0, v3189:0, 1, v3183:0 + 4 * v3189:0, v3458:0, v3193:0, 1 + v3458:0, v3196:0, 1 + v3196:0, v3197:0, v3203:0, v3198:0, v3204:0, v3199:0, v3205:0, v3206:0, v3207:0, v3208:0, v3209:0, v3210:0, v3212:0, 0, v3211:1, v3214:1, v3200:1, v3201:1, v3202:1, 3, 7, 4, 2, 5, 8) :|: v3458:0 > -1 && v3196:0 > 0 && v3192:0 > 1 97.71/35.26 Filtered unneeded arguments: 97.71/35.26 f_1082(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) -> f_1082(x1, x2, x7, x16, x23) 97.71/35.26 f_1168(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_1168(x1, x2, x7, x9, x10, x12, x14, x21) 97.71/35.26 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 97.71/35.26 f_1082(v2463:0, v2464:0, v2469:0, v2478:0, v2488:0) -> f_1082(v2463:0, v2464:0, 1 + v2469:0, v2478:0, v2488:0) :|: v2464:0 > 1 && v2463:0 + 4 * v2469:0 > 4 && v2464:0 > 1 + v2469:0 && v2488:0 > 7 && v2469:0 > 0 97.71/35.26 f_1168(v3183:0, v3184:0, v3189:0, v3191:0, cons_0, cons_1, v3196:0, v3206:0) -> f_1082(v3183:0, v3184:0, 1 + v3189:0, v3196:0, v3206:0) :|: v3184:0 > 1 && v3189:0 > 0 && v3184:0 > 1 + v3189:0 && v3206:0 > 7 && cons_0 = 0 && cons_1 = 1 97.71/35.26 f_1082(v2463:0, v2464:0, v2469:0, v2478:0, v2488:0) -> f_1168(v2463:0, v2464:0, v2469:0, v2463:0 + 4 * v2469:0, v3458:0, 1 + v3458:0, 1 + v2478:0, v2488:0) :|: v3458:0 > -1 && v2478:0 > 0 && v2463:0 + 4 * v2469:0 > 4 97.71/35.26 f_1168(v3183:0, v3184:0, v3189:0, sum~v3183:0~times~cons_4~v3189:0, sum~cons_1~v3458:0, v3192:0, v3196:0, v3206:0) -> f_1168(v3183:0, v3184:0, v3189:0, v3183:0 + 4 * v3189:0, v3458:0, 1 + v3458:0, 1 + v3196:0, v3206:0) :|: v3196:0 > 0 && v3192:0 > 1 && v3458:0 > -1 && sum~v3183:0~times~cons_4~v3189:0 = v3183:0 + 4 * v3189:0 && sum~cons_1~v3458:0 = 1 + v3458:0 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (9) 97.71/35.26 Obligation: 97.71/35.26 Rules: 97.71/35.26 f_1082(v2463:0, v2464:0, v2469:0, v2478:0, v2488:0) -> f_1082(v2463:0, v2464:0, 1 + v2469:0, v2478:0, v2488:0) :|: v2464:0 > 1 && v2463:0 + 4 * v2469:0 > 4 && v2464:0 > 1 + v2469:0 && v2488:0 > 7 && v2469:0 > 0 97.71/35.26 f_1168(v3183:0, v3184:0, v3189:0, v3191:0, cons_0, cons_1, v3196:0, v3206:0) -> f_1082(v3183:0, v3184:0, 1 + v3189:0, v3196:0, v3206:0) :|: v3184:0 > 1 && v3189:0 > 0 && v3184:0 > 1 + v3189:0 && v3206:0 > 7 && cons_0 = 0 && cons_1 = 1 97.71/35.26 f_1082(x, x1, x2, x3, x4) -> f_1168(x, x1, x2, x + 4 * x2, x5, 1 + x5, 1 + x3, x4) :|: x5 > -1 && x3 > 0 && x + 4 * x2 > 4 97.71/35.26 f_1168(x6, x7, x8, x9, x10, x11, x12, x13) -> f_1168(x6, x7, x8, x6 + 4 * x8, x14, 1 + x14, 1 + x12, x13) :|: x12 > 0 && x11 > 1 && x14 > -1 && x9 = x6 + 4 * x8 && x10 = 1 + x14 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (10) IRS2T2 (EQUIVALENT) 97.71/35.26 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 97.71/35.26 97.71/35.26 (f_1082_8,1) 97.71/35.26 (f_1168_8,2) 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (11) 97.71/35.26 Obligation: 97.71/35.26 START: 0; 97.71/35.26 97.71/35.26 FROM: 0; 97.71/35.26 TO: 1; 97.71/35.26 97.71/35.26 FROM: 0; 97.71/35.26 TO: 2; 97.71/35.26 97.71/35.26 FROM: 1; 97.71/35.26 oldX0 := x0; 97.71/35.26 oldX1 := x1; 97.71/35.26 oldX2 := x2; 97.71/35.26 oldX3 := x3; 97.71/35.26 oldX4 := x4; 97.71/35.26 oldX5 := x5; 97.71/35.26 oldX6 := x6; 97.71/35.26 oldX7 := x7; 97.71/35.26 oldX8 := nondet(); 97.71/35.26 oldX9 := nondet(); 97.71/35.26 oldX10 := nondet(); 97.71/35.26 assume(oldX1 > 1 && oldX0 + 4 * oldX2 > 4 && oldX1 > 1 + oldX2 && oldX4 > 7 && oldX2 > 0); 97.71/35.26 x0 := oldX0; 97.71/35.26 x1 := oldX1; 97.71/35.26 x2 := 1 + oldX2; 97.71/35.26 x3 := oldX3; 97.71/35.26 x4 := oldX4; 97.71/35.26 x5 := oldX8; 97.71/35.26 x6 := oldX9; 97.71/35.26 x7 := oldX10; 97.71/35.26 TO: 1; 97.71/35.26 97.71/35.26 FROM: 2; 97.71/35.26 oldX0 := x0; 97.71/35.26 oldX1 := x1; 97.71/35.26 oldX2 := x2; 97.71/35.26 oldX3 := x3; 97.71/35.26 oldX4 := x4; 97.71/35.26 oldX5 := x5; 97.71/35.26 oldX6 := x6; 97.71/35.26 oldX7 := x7; 97.71/35.26 oldX8 := nondet(); 97.71/35.26 oldX9 := nondet(); 97.71/35.26 oldX10 := nondet(); 97.71/35.26 assume(oldX1 > 1 && oldX2 > 0 && oldX1 > 1 + oldX2 && oldX7 > 7 && oldX4 = 0 && oldX5 = 1); 97.71/35.26 x0 := oldX0; 97.71/35.26 x1 := oldX1; 97.71/35.26 x2 := 1 + oldX2; 97.71/35.26 x3 := oldX6; 97.71/35.26 x4 := oldX7; 97.71/35.26 x5 := oldX8; 97.71/35.26 x6 := oldX9; 97.71/35.26 x7 := oldX10; 97.71/35.26 TO: 1; 97.71/35.26 97.71/35.26 FROM: 1; 97.71/35.26 oldX0 := x0; 97.71/35.26 oldX1 := x1; 97.71/35.26 oldX2 := x2; 97.71/35.26 oldX3 := x3; 97.71/35.26 oldX4 := x4; 97.71/35.26 oldX5 := x5; 97.71/35.26 oldX6 := x6; 97.71/35.26 oldX7 := x7; 97.71/35.26 oldX8 := nondet(); 97.71/35.26 assume(oldX8 > -1 && oldX3 > 0 && oldX0 + 4 * oldX2 > 4); 97.71/35.26 x0 := oldX0; 97.71/35.26 x1 := oldX1; 97.71/35.26 x2 := oldX2; 97.71/35.26 x3 := oldX0 + 4 * oldX2; 97.71/35.26 x4 := oldX8; 97.71/35.26 x5 := 1 + oldX8; 97.71/35.26 x6 := 1 + oldX3; 97.71/35.26 x7 := oldX4; 97.71/35.26 TO: 2; 97.71/35.26 97.71/35.26 FROM: 2; 97.71/35.26 oldX0 := x0; 97.71/35.26 oldX1 := x1; 97.71/35.26 oldX2 := x2; 97.71/35.26 oldX3 := x3; 97.71/35.26 oldX4 := x4; 97.71/35.26 oldX5 := x5; 97.71/35.26 oldX6 := x6; 97.71/35.26 oldX7 := x7; 97.71/35.26 oldX8 := oldX4 - 1; 97.71/35.26 assume(oldX6 > 0 && oldX5 > 1 && oldX8 > -1 && oldX3 = oldX0 + 4 * oldX2 && oldX4 = 1 + oldX8); 97.71/35.26 x0 := oldX0; 97.71/35.26 x1 := oldX1; 97.71/35.26 x2 := oldX2; 97.71/35.26 x3 := oldX0 + 4 * oldX2; 97.71/35.26 x4 := oldX4 - 1; 97.71/35.26 x5 := 1 + oldX8; 97.71/35.26 x6 := 1 + oldX6; 97.71/35.26 x7 := oldX7; 97.71/35.26 TO: 2; 97.71/35.26 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (12) T2 (EQUIVALENT) 97.71/35.26 Initially, performed program simplifications using lexicographic rank functions: 97.71/35.26 * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: 97.71/35.26 - Rank function 1: 97.71/35.26 RF for loc. 6: 5*x1-5*x2 97.71/35.26 RF for loc. 7: 5*x1-5*x2 97.71/35.26 RF for loc. 8: 5*x1-5*x2 97.71/35.26 RF for loc. 12: 5*x1-5*x2 97.71/35.26 Bound for (chained) transitions 5: 10 97.71/35.26 - Rank function 2: 97.71/35.26 RF for loc. 6: 1+2*x1-2*x2 97.71/35.26 RF for loc. 7: 2*x1-2*x2 97.71/35.26 RF for loc. 8: 1+2*x1-2*x2 97.71/35.26 RF for loc. 12: 2*x1-2*x2 97.71/35.26 Bound for (chained) transitions 17: 4 97.71/35.26 - Rank function 3: 97.71/35.26 RF for loc. 6: 1 97.71/35.26 RF for loc. 7: 1-2*x6 97.71/35.26 RF for loc. 8: 0 97.71/35.26 RF for loc. 12: -2*x6 97.71/35.26 Bound for (chained) transitions 2: 1 97.71/35.26 - Rank function 4: 97.71/35.26 RF for loc. 7: -2*x6 97.71/35.26 RF for loc. 8: -3 97.71/35.26 RF for loc. 12: -1-2*x6 97.71/35.26 Bound for (chained) transitions 6: -3 97.71/35.26 - Rank function 5: 97.71/35.26 RF for loc. 7: 2*x4 97.71/35.26 RF for loc. 12: -1+2*x4 97.71/35.26 Bound for (chained) transitions 18: 1 97.71/35.26 - Rank function 6: 97.71/35.26 RF for loc. 7: 0 97.71/35.26 RF for loc. 12: -1 97.71/35.26 Bound for (chained) transitions 14: 0 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (13) 97.71/35.26 YES 97.71/35.26 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (14) 97.71/35.26 Obligation: 97.71/35.26 SCC 97.71/35.26 ---------------------------------------- 97.71/35.26 97.71/35.26 (15) SCC2IRS (SOUND) 97.71/35.26 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 97.71/35.26 Generated rules. Obtained 20 rulesP rules: 97.71/35.26 f_945(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_950(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.26 f_950(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_955(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.26 f_955(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_960(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.27 f_960(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_965(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) :|: 0 = 0 97.71/35.27 f_965(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) -> f_971(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) :|: 1 + v1850 = v1692 && 0 <= v1850 97.71/35.27 f_971(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) -> f_975(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) :|: TRUE 97.71/35.27 f_975(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) -> f_979(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) :|: 0 = 0 97.71/35.27 f_979(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8) -> f_985(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: v1854 = 1 + v1695 && 2 <= v1854 97.71/35.27 f_985(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_991(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: TRUE 97.71/35.27 f_991(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_997(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: TRUE 97.71/35.27 f_997(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_1002(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: 0 = 0 97.71/35.27 f_1002(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_1007(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: 0 = 0 97.71/35.27 f_1007(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_1012(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: 0 = 0 97.71/35.27 f_1012(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_1015(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: 0 = 0 97.71/35.27 f_1015(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1850, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_1018(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) :|: 0 = 0 97.71/35.27 f_1018(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 8, 2) -> f_1021(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: 0 < v1850 && 2 <= v1692 97.71/35.27 f_1021(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_1027(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.27 f_1027(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_1033(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.27 f_1033(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_940(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1850, v1692, v1695, v1854, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.27 f_940(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) -> f_945(v1684, v1685, v1686, v1687, v1688, v1689, 0, 1, v1692, v1693, v1694, v1695, v1696, v1702, v1697, v1703, v1698, v1704, v1705, v1706, v1707, v1708, v1709, v1699, v1700, v1701, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.27 Combined rules. Obtained 1 rulesP rules: 97.71/35.27 f_945(v1684:0, v1685:0, v1686:0, v1687:0, v1688:0, v1689:0, 0, 1, 1 + v1850:0, v1693:0, v1694:0, v1695:0, v1696:0, v1702:0, v1697:0, v1703:0, v1698:0, v1704:0, v1705:0, v1706:0, v1707:0, v1708:0, v1709:0, v1699:0, v1700:0, v1701:0, 3, 7, 4, 2, 8) -> f_945(v1684:0, v1685:0, v1686:0, v1687:0, v1688:0, v1689:0, 0, 1, v1850:0, 1 + v1850:0, v1695:0, 1 + v1695:0, v1696:0, v1702:0, v1697:0, v1703:0, v1698:0, v1704:0, v1705:0, v1706:0, v1707:0, v1708:0, v1709:0, v1699:0, v1700:0, v1701:0, 3, 7, 4, 2, 8) :|: v1850:0 > 0 && v1695:0 > 0 97.71/35.27 Filtered unneeded arguments: 97.71/35.27 f_945(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31) -> f_945(x9, x12) 97.71/35.27 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 97.71/35.27 f_945(sum~cons_1~v1850:0, v1695:0) -> f_945(v1850:0, 1 + v1695:0) :|: v1850:0 > 0 && v1695:0 > 0 && sum~cons_1~v1850:0 = 1 + v1850:0 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (16) 97.71/35.27 Obligation: 97.71/35.27 Rules: 97.71/35.27 f_945(sum~cons_1~v1850:0, v1695:0) -> f_945(v1850:0, 1 + v1695:0) :|: v1850:0 > 0 && v1695:0 > 0 && sum~cons_1~v1850:0 = 1 + v1850:0 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (17) IntTRSCompressionProof (EQUIVALENT) 97.71/35.27 Compressed rules. 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (18) 97.71/35.27 Obligation: 97.71/35.27 Rules: 97.71/35.27 f_945(sum~cons_1~v1850:0:0, v1695:0:0) -> f_945(v1850:0:0, 1 + v1695:0:0) :|: v1850:0:0 > 0 && v1695:0:0 > 0 && sum~cons_1~v1850:0:0 = 1 + v1850:0:0 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (19) RankingReductionPairProof (EQUIVALENT) 97.71/35.27 Interpretation: 97.71/35.27 [ f_945 ] = f_945_1 97.71/35.27 97.71/35.27 The following rules are decreasing: 97.71/35.27 f_945(sum~cons_1~v1850:0:0, v1695:0:0) -> f_945(v1850:0:0, 1 + v1695:0:0) :|: v1850:0:0 > 0 && v1695:0:0 > 0 && sum~cons_1~v1850:0:0 = 1 + v1850:0:0 97.71/35.27 97.71/35.27 The following rules are bounded: 97.71/35.27 f_945(sum~cons_1~v1850:0:0, v1695:0:0) -> f_945(v1850:0:0, 1 + v1695:0:0) :|: v1850:0:0 > 0 && v1695:0:0 > 0 && sum~cons_1~v1850:0:0 = 1 + v1850:0:0 97.71/35.27 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (20) 97.71/35.27 YES 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (21) 97.71/35.27 Obligation: 97.71/35.27 SCC 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (22) SCC2IRS (SOUND) 97.71/35.27 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 97.71/35.27 Generated rules. Obtained 20 rulesP rules: 97.71/35.27 f_909(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1589, v1590, v1591, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) -> f_913(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1589, v1590, v1591, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.27 f_913(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1589, v1590, v1591, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) -> f_917(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1590, v1591, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.27 f_917(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1590, v1591, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) -> f_920(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1590, v1591, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) :|: 0 = 0 97.71/35.27 f_920(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1590, v1591, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) -> f_923(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1591, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: v1670 = v1581 + 4 * v1587 && 5 <= v1670 97.71/35.27 f_923(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1591, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_926(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.27 f_926(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_932(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: v1673 <= 0 97.71/35.27 f_932(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_938(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.27 f_938(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_944(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.27 f_944(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_949(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.27 f_949(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1589, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_954(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.27 f_954(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_959(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1785, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: v1785 = 1 + v1587 && 2 <= v1785 97.71/35.27 f_959(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1785, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_964(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1785, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.27 f_964(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1785, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_970(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1785, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: TRUE 97.71/35.27 f_970(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1670, v1673, 0, v1785, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_974(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.27 f_974(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_978(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) :|: 0 = 0 97.71/35.27 f_978(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 2, 8, 5) -> f_983(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 8, 12, 5, 2) :|: v1785 < v1582 && 3 <= v1582 && 12 <= v1602 97.71/35.27 f_983(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 8, 12, 5, 2) -> f_989(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 8, 12, 5, 2) :|: 0 = 0 97.71/35.27 f_989(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 8, 12, 5, 2) -> f_995(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 8, 12, 5, 2) :|: TRUE 97.71/35.27 f_995(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1590, v1591, v1596, v1597, v1598, 3, 7, 4, 8, 12, 5, 2) -> f_905(v1581, v1582, v1583, v1584, v1585, v1586, v1785, 1, v1587, v1670, v1673, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.27 f_905(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1589, v1590, v1591, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) -> f_909(v1581, v1582, v1583, v1584, v1585, v1586, v1587, 1, v1589, v1590, v1591, 0, v1593, v1599, v1594, v1600, v1595, v1601, v1602, v1603, v1604, v1605, v1606, v1607, v1596, v1597, v1598, 3, 7, 4, 2, 8) :|: TRUE 97.71/35.27 Combined rules. Obtained 1 rulesP rules: 97.71/35.27 f_909(v1581:0, v1582:0, v1583:0, v1584:0, v1585:0, v1586:0, v1587:0, 1, v1589:0, v1590:0, v1591:0, 0, v1593:0, v1599:0, v1594:0, v1600:0, v1595:0, v1601:0, v1602:0, v1603:0, v1604:0, v1605:0, v1606:0, v1607:0, v1596:0, v1597:0, v1598:0, 3, 7, 4, 2, 8) -> f_909(v1581:0, v1582:0, v1583:0, v1584:0, v1585:0, v1586:0, 1 + v1587:0, 1, v1587:0, v1581:0 + 4 * v1587:0, v1673:0, 0, v1593:0, v1599:0, v1594:0, v1600:0, v1595:0, v1601:0, v1602:0, v1603:0, v1604:0, v1605:0, v1606:0, v1607:0, v1596:0, v1597:0, v1598:0, 3, 7, 4, 2, 8) :|: v1581:0 + 4 * v1587:0 > 4 && v1673:0 < 1 && v1587:0 > 0 && v1582:0 > 2 && v1602:0 > 11 && v1582:0 > 1 + v1587:0 97.71/35.27 Filtered unneeded arguments: 97.71/35.27 f_909(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) -> f_909(x1, x2, x7, x19) 97.71/35.27 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 97.71/35.27 f_909(v1581:0, v1582:0, v1587:0, v1602:0) -> f_909(v1581:0, v1582:0, 1 + v1587:0, v1602:0) :|: v1587:0 > 0 && v1581:0 + 4 * v1587:0 > 4 && v1582:0 > 2 && v1582:0 > 1 + v1587:0 && v1602:0 > 11 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (23) 97.71/35.27 Obligation: 97.71/35.27 Rules: 97.71/35.27 f_909(v1581:0, v1582:0, v1587:0, v1602:0) -> f_909(v1581:0, v1582:0, 1 + v1587:0, v1602:0) :|: v1587:0 > 0 && v1581:0 + 4 * v1587:0 > 4 && v1582:0 > 2 && v1582:0 > 1 + v1587:0 && v1602:0 > 11 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (24) IntTRSCompressionProof (EQUIVALENT) 97.71/35.27 Compressed rules. 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (25) 97.71/35.27 Obligation: 97.71/35.27 Rules: 97.71/35.27 f_909(v1581:0:0, v1582:0:0, v1587:0:0, v1602:0:0) -> f_909(v1581:0:0, v1582:0:0, 1 + v1587:0:0, v1602:0:0) :|: v1582:0:0 > 1 + v1587:0:0 && v1602:0:0 > 11 && v1582:0:0 > 2 && v1581:0:0 + 4 * v1587:0:0 > 4 && v1587:0:0 > 0 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (26) RankingReductionPairProof (EQUIVALENT) 97.71/35.27 Interpretation: 97.71/35.27 [ f_909 ] = f_909_2 + -1*f_909_3 97.71/35.27 97.71/35.27 The following rules are decreasing: 97.71/35.27 f_909(v1581:0:0, v1582:0:0, v1587:0:0, v1602:0:0) -> f_909(v1581:0:0, v1582:0:0, 1 + v1587:0:0, v1602:0:0) :|: v1582:0:0 > 1 + v1587:0:0 && v1602:0:0 > 11 && v1582:0:0 > 2 && v1581:0:0 + 4 * v1587:0:0 > 4 && v1587:0:0 > 0 97.71/35.27 97.71/35.27 The following rules are bounded: 97.71/35.27 f_909(v1581:0:0, v1582:0:0, v1587:0:0, v1602:0:0) -> f_909(v1581:0:0, v1582:0:0, 1 + v1587:0:0, v1602:0:0) :|: v1582:0:0 > 1 + v1587:0:0 && v1602:0:0 > 11 && v1582:0:0 > 2 && v1581:0:0 + 4 * v1587:0:0 > 4 && v1587:0:0 > 0 97.71/35.27 97.71/35.27 97.71/35.27 ---------------------------------------- 97.71/35.27 97.71/35.27 (27) 97.71/35.27 YES 97.98/35.37 EOF