90.67/34.26 YES 91.30/34.36 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 91.30/34.36 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 91.30/34.36 91.30/34.36 91.30/34.36 Termination of the given C Problem could be proven: 91.30/34.36 91.30/34.36 (0) C Problem 91.30/34.36 (1) CToLLVMProof [EQUIVALENT, 176 ms] 91.30/34.36 (2) LLVM problem 91.30/34.36 (3) LLVMToTerminationGraphProof [EQUIVALENT, 22.6 s] 91.30/34.36 (4) LLVM Symbolic Execution Graph 91.30/34.36 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 91.30/34.36 (6) AND 91.30/34.36 (7) LLVM Symbolic Execution SCC 91.30/34.36 (8) SCC2IRS [SOUND, 202 ms] 91.30/34.36 (9) IntTRS 91.30/34.36 (10) IRS2T2 [EQUIVALENT, 0 ms] 91.30/34.36 (11) T2IntSys 91.30/34.36 (12) T2 [EQUIVALENT, 2 ms] 91.30/34.36 (13) YES 91.30/34.36 (14) LLVM Symbolic Execution SCC 91.30/34.36 (15) SCC2IRS [SOUND, 85 ms] 91.30/34.36 (16) IntTRS 91.30/34.36 (17) IRS2T2 [EQUIVALENT, 0 ms] 91.30/34.36 (18) T2IntSys 91.30/34.36 (19) T2 [EQUIVALENT, 5 ms] 91.30/34.36 (20) YES 91.30/34.36 (21) LLVM Symbolic Execution SCC 91.30/34.36 (22) SCC2IRS [SOUND, 86 ms] 91.30/34.36 (23) IntTRS 91.30/34.36 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 91.30/34.36 (25) IntTRS 91.30/34.36 (26) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 91.30/34.36 (27) YES 91.30/34.36 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (0) 91.30/34.36 Obligation: 91.30/34.36 c file /export/starexec/sandbox/benchmark/theBenchmark.c 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (1) CToLLVMProof (EQUIVALENT) 91.30/34.36 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (2) 91.30/34.36 Obligation: 91.30/34.36 LLVM Problem 91.30/34.36 91.30/34.36 Aliases: 91.30/34.36 91.30/34.36 Data layout: 91.30/34.36 91.30/34.36 "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" 91.30/34.36 91.30/34.36 Machine: 91.30/34.36 91.30/34.36 "x86_64-pc-linux-gnu" 91.30/34.36 91.30/34.36 Type definitions: 91.30/34.36 91.30/34.36 Global variables: 91.30/34.36 91.30/34.36 Function declarations and definitions: 91.30/34.36 91.30/34.36 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 91.30/34.36 *BasicFunctionTypename: "sumOfThirdBytes" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (numbers *i32, array_size i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 91.30/34.36 0: 91.30/34.36 %1 = alloca *i32, align 8 91.30/34.36 %2 = alloca i32, align 4 91.30/34.36 %i = alloca i32, align 4 91.30/34.36 %sum = alloca i32, align 4 91.30/34.36 %p = alloca *i8, align 8 91.30/34.36 store %numbers, %1 91.30/34.36 store %array_size, %2 91.30/34.36 store 0, %sum 91.30/34.36 store 0, %i 91.30/34.36 br %3 91.30/34.36 3: 91.30/34.36 %4 = load %i 91.30/34.36 %5 = load %2 91.30/34.36 %6 = icmp slt %4 %5 91.30/34.36 br %6, %7, %30 91.30/34.36 7: 91.30/34.36 %8 = load %i 91.30/34.36 %9 = sext i32 %8 to i64 91.30/34.36 %10 = load %1 91.30/34.36 %11 = getelementptr %10, %9 91.30/34.36 %12 = bitcast *i32 %11 to *i8 91.30/34.36 store %12, %p 91.30/34.36 %13 = load %p 91.30/34.36 %14 = getelementptr %13, 2 91.30/34.36 store %14, %p 91.30/34.36 br %15 91.30/34.36 15: 91.30/34.36 %16 = load %p 91.30/34.36 %17 = load %16 91.30/34.36 %18 = sext i8 %17 to i32 91.30/34.36 %19 = icmp sgt %18 0 91.30/34.36 br %19, %20, %26 91.30/34.36 20: 91.30/34.36 %21 = load %sum 91.30/34.36 %22 = add %21 1 91.30/34.36 store %22, %sum 91.30/34.36 %23 = load %p 91.30/34.36 %24 = load %23 91.30/34.36 %25 = add %24 -1 91.30/34.36 store %25, %23 91.30/34.36 br %15 91.30/34.36 26: 91.30/34.36 br %27 91.30/34.36 27: 91.30/34.36 %28 = load %i 91.30/34.36 %29 = add %28 1 91.30/34.36 store %29, %i 91.30/34.36 br %3 91.30/34.36 30: 91.30/34.36 %31 = load %sum 91.30/34.36 ret %31 91.30/34.36 91.30/34.36 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 91.30/34.36 0: 91.30/34.36 %1 = alloca i32, align 4 91.30/34.36 %array_size = alloca i32, align 4 91.30/34.36 %numbers = alloca *i32, align 8 91.30/34.36 store 0, %1 91.30/34.36 %2 = call i32 @__VERIFIER_nondet_int() 91.30/34.36 store %2, %array_size 91.30/34.36 %3 = load %array_size 91.30/34.36 %4 = icmp slt %3 1 91.30/34.36 br %4, %5, %6 91.30/34.36 5: 91.30/34.36 store 1, %array_size 91.30/34.36 br %6 91.30/34.36 6: 91.30/34.36 %7 = load %array_size 91.30/34.36 %8 = sext i32 %7 to i64 91.30/34.36 %9 = mul %8 4 91.30/34.36 %10 = alloca i8, numElementsLit: %9 91.30/34.36 %11 = bitcast *i8 %10 to *i32 91.30/34.36 store %11, %numbers 91.30/34.36 %12 = load %numbers 91.30/34.36 %13 = load %array_size 91.30/34.36 %14 = call i32 @sumOfThirdBytes(*i32 %12, i32 %13) 91.30/34.36 ret %14 91.30/34.36 91.30/34.36 91.30/34.36 Analyze Termination of all function calls matching the pattern: 91.30/34.36 main() 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (3) LLVMToTerminationGraphProof (EQUIVALENT) 91.30/34.36 Constructed symbolic execution graph for LLVM program and proved memory safety. 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (4) 91.30/34.36 Obligation: 91.30/34.36 SE Graph 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (5) SymbolicExecutionGraphToSCCProof (SOUND) 91.30/34.36 Splitted symbolic execution graph to 3 SCCs. 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (6) 91.30/34.36 Complex Obligation (AND) 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (7) 91.30/34.36 Obligation: 91.30/34.36 SCC 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (8) SCC2IRS (SOUND) 91.30/34.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 91.30/34.36 Generated rules. Obtained 53 rulesP rules: 91.30/34.36 f_1167(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1169(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: v3782 = 1 + v3613 && 2 <= v3782 91.30/34.36 f_1169(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1171(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1171(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1173(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3614, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1173(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3614, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1175(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3614, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1175(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3614, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1178(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3889, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3614, v3616, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: 1 + v3889 = v3611 && 0 <= v3889 91.30/34.36 f_1178(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3889, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3614, v3616, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1180(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3889, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1180(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3889, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1182(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3889, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1182(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3782, v3889, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1183(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3617, v3613, v3782, v3889, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1183(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3969, v3970, v3971, v3972, v3973, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1186(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3969, v3970, v3971, v3972, v3973, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1186(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3969, v3970, v3971, v3972, v3973, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1189(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3969, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1189(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3969, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1192(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1192(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1195(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: 0 < v3973 && 2 <= v3969 91.30/34.36 f_1192(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1196(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: v3973 <= 0 && v3969 = 1 && v3973 = 0 && 0 = 0 91.30/34.36 f_1195(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1199(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1199(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1202(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1202(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3970, v3971, v3972, v3969, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, 0, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1164(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, v3973, v3971, v3972, v3968, v3969, v3973, v3970, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1164(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3612, v3613, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) -> f_1167(v3600, v3601, v3602, v3603, v3604, v3605, v3606, v3607, 1, v3609, v3610, v3611, v3613, v3614, v3615, v3616, v3617, v3618, v3624, v3619, v3625, v3620, v3626, v3627, v3628, v3629, v3630, v3631, v3632, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1196(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1200(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1200(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1203(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1203(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, v3970, v3971, v3972, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3989, v3991, v3977, v3978, v3979, 3, 7, 2, 4, 5, 8) -> f_1166(v3958, v3959, v3960, v3961, v3962, v3963, v3964, v3965, 1, v3967, v3968, 0, 0, v3971, v3972, v3968, v3970, v3974, v3980, v3975, v3981, v3976, v3982, v3983, v3984, v3985, v3986, v3987, v3988, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1166(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3705, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) -> f_1168(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3705, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1168(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3705, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) -> f_1170(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1170(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) -> f_1172(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: v3784 = 1 + v3696 && 2 <= v3784 91.30/34.36 f_1172(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) -> f_1174(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1174(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) -> f_1176(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1176(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) -> f_1177(v3689, v3690, v3691, v3692, v3693, v3694, v3695, v3696, 1, v3698, v3699, v3700, 0, v3702, v3703, v3704, v3784, v3706, v3712, v3707, v3713, v3708, v3714, v3715, v3716, v3717, v3718, v3719, v3720, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.36 f_1177(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3848, 1, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3857, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1179(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1179(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1181(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1181(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1184(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: v3857 < v3842 && 2 <= v3842 && 8 <= v3867 91.30/34.36 f_1184(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1187(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1187(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1190(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.36 f_1190(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1193(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1193(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3848, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1197(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1197(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1201(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1201(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8) -> f_1204(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: v4181 = v3841 + 4 * v3857 && 5 <= v4181 91.30/34.36 f_1204(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1205(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1205(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1206(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1206(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3850, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1207(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1207(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1208(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: v4183 = 2 + v4181 && 7 <= v4183 91.30/34.36 f_1208(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1209(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1209(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1210(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1210(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v3873, v3874, v3861, v3862, v3863, 3, 7, 2, 4, 8, 5) -> f_1211(v3841, v3842, v3843, v3844, v3845, v3846, v3847, v3857, 1, v4181, v4183, v3851, v3852, 0, v3854, v3855, v3856, v3848, v3858, v3864, v3859, v3865, v3860, v3866, v3867, v3868, v3869, v3870, v3871, v3872, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1211(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4248, v4249, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1212(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4249, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1212(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4249, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1213(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4249, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1213(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4249, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1214(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1214(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1215(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: 0 < v4285 91.30/34.36 f_1214(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1216(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: v4285 <= 0 91.30/34.36 f_1215(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1217(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4251, v4252, v4253, 0, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1217(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4251, v4252, v4253, 0, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1219(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4251, v4252, v4253, 0, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1219(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4251, v4252, v4253, 0, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1164(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, v4251, v4252, v4253, 1, 0, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v3633, v3634, 0, v3621, v3622, v3623, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1216(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1218(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: 0 = 0 91.30/34.36 f_1218(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1220(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 f_1220(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v4248, v4249, v4270, v4271, v4258, v4259, v4260, 3, 7, 2, 4, 5, 8) -> f_1166(v4237, v4238, v4239, v4240, v4241, v4242, v4243, v4244, 1, v4246, v4247, v4285, 0, v4251, v4252, v4253, v4254, v4255, v4261, v4256, v4262, v4257, v4263, v4264, v4265, v4266, v4267, v4268, v4269, v3721, v3722, v3709, v3710, v3711, 3, 7, 2, 4, 5, 8) :|: TRUE 91.30/34.36 Combined rules. Obtained 4 rulesP rules: 91.30/34.36 f_1214(v4237:0, v4238:0, v4239:0, v4240:0, v4241:0, v4242:0, v4243:0, v4244:0, 1, v4246:0, v4247:0, v4285:0, 0, v4251:0, v4252:0, v4253:0, v4254:0, v4255:0, v4261:0, v4256:0, v4262:0, v4257:0, v4263:0, v4264:0, v4265:0, v4266:0, v4267:0, v4268:0, v4269:0, v4248:0, v4249:0, v4270:0, v4271:0, v4258:0, v4259:0, v4260:0, 3, 7, 2, 4, 5, 8) -> f_1214(v4237:0, v4238:0, v4239:0, v4240:0, v4241:0, v4242:0, v4243:0, 1 + v4244:0, 1, v4237:0 + 4 * (1 + v4244:0), 2 + (v4237:0 + 4 * (1 + v4244:0)), v4285:1, 0, v4251:0, v4252:0, v4253:0, v4244:0, v4255:0, v4261:0, v4256:0, v4262:0, v4257:0, v4263:0, v4264:0, v4265:0, v4266:0, v4267:0, v4268:0, v4269:0, v4247:0, v4285:0, v4270:1, v4271:1, v4258:1, v4259:1, v4260:1, 3, 7, 2, 4, 5, 8) :|: v4244:0 > 0 && v4238:0 > 1 && v4238:0 > 1 + v4244:0 && v4264:0 > 7 && v4237:0 + 4 * (1 + v4244:0) > 4 && v4285:0 < 1 91.30/34.36 f_1167(v3600:0, v3601:0, v3602:0, v3603:0, v3604:0, v3605:0, v3606:0, v3607:0, 1, v3609:0, v3610:0, 1, v3613:0, v3614:0, v3615:0, v3616:0, v3617:0, v3618:0, v3624:0, v3619:0, v3625:0, v3620:0, v3626:0, v3627:0, v3628:0, v3629:0, v3630:0, v3631:0, v3632:0, v3633:0, v3634:0, 0, v3621:0, v3622:0, v3623:0, 3, 7, 2, 4, 5, 8) -> f_1214(v3600:0, v3601:0, v3602:0, v3603:0, v3604:0, v3605:0, v3606:0, 1 + v3607:0, 1, v3600:0 + 4 * (1 + v3607:0), 2 + (v3600:0 + 4 * (1 + v3607:0)), v4285:0, 0, v3613:0, 1 + v3613:0, v3610:0, v3607:0, v3618:0, v3624:0, v3619:0, v3625:0, v3620:0, v3626:0, v3627:0, v3628:0, v3629:0, v3630:0, v3631:0, v3632:0, v3610:0, 0, v4270:0, v4271:0, v4258:0, v4259:0, v4260:0, 3, 7, 2, 4, 5, 8) :|: v3613:0 > 0 && v3607:0 > 0 && v3601:0 > 1 && v3601:0 > 1 + v3607:0 && v3627:0 > 7 && v3600:0 + 4 * (1 + v3607:0) > 4 91.30/34.36 f_1167(v3600:0, v3601:0, v3602:0, v3603:0, v3604:0, v3605:0, v3606:0, v3607:0, 1, v3609:0, v3610:0, 1 + v3889:0, v3613:0, v3614:0, v3615:0, v3616:0, v3617:0, v3618:0, v3624:0, v3619:0, v3625:0, v3620:0, v3626:0, v3627:0, v3628:0, v3629:0, v3630:0, v3631:0, v3632:0, v3633:0, v3634:0, 0, v3621:0, v3622:0, v3623:0, 3, 7, 2, 4, 5, 8) -> f_1167(v3600:0, v3601:0, v3602:0, v3603:0, v3604:0, v3605:0, v3606:0, v3607:0, 1, v3609:0, v3610:0, v3889:0, 1 + v3613:0, v3610:0, 1 + v3889:0, v3889:0, v3617:0, v3618:0, v3624:0, v3619:0, v3625:0, v3620:0, v3626:0, v3627:0, v3628:0, v3629:0, v3630:0, v3631:0, v3632:0, v3633:1, v3634:1, 0, v3621:1, v3622:1, v3623:1, 3, 7, 2, 4, 5, 8) :|: v3889:0 > 0 && v3613:0 > 0 91.30/34.36 f_1214(v4237:0, v4238:0, v4239:0, v4240:0, v4241:0, v4242:0, v4243:0, v4244:0, 1, v4246:0, v4247:0, v4285:0, 0, v4251:0, v4252:0, v4253:0, v4254:0, v4255:0, v4261:0, v4256:0, v4262:0, v4257:0, v4263:0, v4264:0, v4265:0, v4266:0, v4267:0, v4268:0, v4269:0, v4248:0, v4249:0, v4270:0, v4271:0, v4258:0, v4259:0, v4260:0, 3, 7, 2, 4, 5, 8) -> f_1167(v4237:0, v4238:0, v4239:0, v4240:0, v4241:0, v4242:0, v4243:0, v4244:0, 1, v4246:0, v4247:0, v4285:0, v4252:0, v4253:0, 1, 0, v4254:0, v4255:0, v4261:0, v4256:0, v4262:0, v4257:0, v4263:0, v4264:0, v4265:0, v4266:0, v4267:0, v4268:0, v4269:0, v3633:0, v3634:0, 0, v3621:0, v3622:0, v3623:0, 3, 7, 2, 4, 5, 8) :|: v4285:0 > 0 91.30/34.36 Filtered unneeded arguments: 91.30/34.36 f_1214(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, x39, x40, x41, x42) -> f_1214(x1, x2, x8, x12, x15, x24) 91.30/34.36 f_1167(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, x39, x40, x41) -> f_1167(x1, x2, x8, x12, x13, x24) 91.30/34.36 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 91.30/34.36 f_1214(v4237:0, v4238:0, v4244:0, v4285:0, v4252:0, v4264:0) -> f_1214(v4237:0, v4238:0, 1 + v4244:0, v4285:1, v4252:0, v4264:0) :|: v4238:0 > 1 && v4244:0 > 0 && v4238:0 > 1 + v4244:0 && v4264:0 > 7 && v4285:0 < 1 && v4237:0 + (4 + 4 * v4244:0) > 4 91.30/34.36 f_1167(v3600:0, v3601:0, v3607:0, cons_1, v3613:0, v3627:0) -> f_1214(v3600:0, v3601:0, 1 + v3607:0, v4285:0, 1 + v3613:0, v3627:0) :|: v3607:0 > 0 && v3613:0 > 0 && v3601:0 > 1 && v3601:0 > 1 + v3607:0 && v3600:0 + (4 + 4 * v3607:0) > 4 && v3627:0 > 7 && cons_1 = 1 91.30/34.36 f_1167(v3600:0, v3601:0, v3607:0, sum~cons_1~v3889:0, v3613:0, v3627:0) -> f_1167(v3600:0, v3601:0, v3607:0, v3889:0, 1 + v3613:0, v3627:0) :|: v3889:0 > 0 && v3613:0 > 0 && sum~cons_1~v3889:0 = 1 + v3889:0 91.30/34.36 f_1214(v4237:0, v4238:0, v4244:0, v4285:0, v4252:0, v4264:0) -> f_1167(v4237:0, v4238:0, v4244:0, v4285:0, v4252:0, v4264:0) :|: v4285:0 > 0 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (9) 91.30/34.36 Obligation: 91.30/34.36 Rules: 91.30/34.36 f_1214(v4237:0, v4238:0, v4244:0, v4285:0, v4252:0, v4264:0) -> f_1214(v4237:0, v4238:0, 1 + v4244:0, v4285:1, v4252:0, v4264:0) :|: v4238:0 > 1 && v4244:0 > 0 && v4238:0 > 1 + v4244:0 && v4264:0 > 7 && v4285:0 < 1 && v4237:0 + (4 + 4 * v4244:0) > 4 91.30/34.36 f_1167(x, x1, x2, x3, x4, x5) -> f_1214(x, x1, 1 + x2, x6, 1 + x4, x5) :|: x2 > 0 && x4 > 0 && x1 > 1 && x1 > 1 + x2 && x + (4 + 4 * x2) > 4 && x5 > 7 && x3 = 1 91.30/34.36 f_1167(v3600:0, v3601:0, v3607:0, sum~cons_1~v3889:0, v3613:0, v3627:0) -> f_1167(v3600:0, v3601:0, v3607:0, v3889:0, 1 + v3613:0, v3627:0) :|: v3889:0 > 0 && v3613:0 > 0 && sum~cons_1~v3889:0 = 1 + v3889:0 91.30/34.36 f_1214(x7, x8, x9, x10, x11, x12) -> f_1167(x7, x8, x9, x10, x11, x12) :|: x10 > 0 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (10) IRS2T2 (EQUIVALENT) 91.30/34.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 91.30/34.36 91.30/34.36 (f_1214_6,1) 91.30/34.36 (f_1167_6,2) 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (11) 91.30/34.36 Obligation: 91.30/34.36 START: 0; 91.30/34.36 91.30/34.36 FROM: 0; 91.30/34.36 TO: 1; 91.30/34.36 91.30/34.36 FROM: 0; 91.30/34.36 TO: 2; 91.30/34.36 91.30/34.36 FROM: 1; 91.30/34.36 oldX0 := x0; 91.30/34.36 oldX1 := x1; 91.30/34.36 oldX2 := x2; 91.30/34.36 oldX3 := x3; 91.30/34.36 oldX4 := x4; 91.30/34.36 oldX5 := x5; 91.30/34.36 oldX6 := nondet(); 91.30/34.36 assume(oldX1 > 1 && oldX2 > 0 && oldX1 > 1 + oldX2 && oldX5 > 7 && oldX3 < 1 && oldX0 + (4 + 4 * oldX2) > 4); 91.30/34.36 x0 := oldX0; 91.30/34.36 x1 := oldX1; 91.30/34.36 x2 := 1 + oldX2; 91.30/34.36 x3 := oldX6; 91.30/34.36 x4 := oldX4; 91.30/34.36 x5 := oldX5; 91.30/34.36 TO: 1; 91.30/34.36 91.30/34.36 FROM: 2; 91.30/34.36 oldX0 := x0; 91.30/34.36 oldX1 := x1; 91.30/34.36 oldX2 := x2; 91.30/34.36 oldX3 := x3; 91.30/34.36 oldX4 := x4; 91.30/34.36 oldX5 := x5; 91.30/34.36 oldX6 := nondet(); 91.30/34.36 assume(oldX2 > 0 && oldX4 > 0 && oldX1 > 1 && oldX1 > 1 + oldX2 && oldX0 + (4 + 4 * oldX2) > 4 && oldX5 > 7 && oldX3 = 1); 91.30/34.36 x0 := oldX0; 91.30/34.36 x1 := oldX1; 91.30/34.36 x2 := 1 + oldX2; 91.30/34.36 x3 := oldX6; 91.30/34.36 x4 := 1 + oldX4; 91.30/34.36 x5 := oldX5; 91.30/34.36 TO: 1; 91.30/34.36 91.30/34.36 FROM: 2; 91.30/34.36 oldX0 := x0; 91.30/34.36 oldX1 := x1; 91.30/34.36 oldX2 := x2; 91.30/34.36 oldX3 := x3; 91.30/34.36 oldX4 := x4; 91.30/34.36 oldX5 := x5; 91.30/34.36 oldX6 := oldX3 - 1; 91.30/34.36 assume(oldX6 > 0 && oldX4 > 0 && oldX3 = 1 + oldX6); 91.30/34.36 x0 := oldX0; 91.30/34.36 x1 := oldX1; 91.30/34.36 x2 := oldX2; 91.30/34.36 x3 := oldX3 - 1; 91.30/34.36 x4 := 1 + oldX4; 91.30/34.36 x5 := oldX5; 91.30/34.36 TO: 2; 91.30/34.36 91.30/34.36 FROM: 1; 91.30/34.36 oldX0 := x0; 91.30/34.36 oldX1 := x1; 91.30/34.36 oldX2 := x2; 91.30/34.36 oldX3 := x3; 91.30/34.36 oldX4 := x4; 91.30/34.36 oldX5 := x5; 91.30/34.36 assume(oldX3 > 0); 91.30/34.36 x0 := oldX0; 91.30/34.36 x1 := oldX1; 91.30/34.36 x2 := oldX2; 91.30/34.36 x3 := oldX3; 91.30/34.36 x4 := oldX4; 91.30/34.36 x5 := oldX5; 91.30/34.36 TO: 2; 91.30/34.36 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (12) T2 (EQUIVALENT) 91.30/34.36 Initially, performed program simplifications using lexicographic rank functions: 91.30/34.36 * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: 91.30/34.36 - Rank function 1: 91.30/34.36 RF for loc. 6: 1+2*x1-2*x2 91.30/34.36 RF for loc. 7: 2*x1-2*x2 91.30/34.36 RF for loc. 8: 1+2*x1-2*x2 91.30/34.36 RF for loc. 12: 2*x1-2*x2 91.30/34.36 Bound for (chained) transitions 5: 5 91.30/34.36 Bound for (chained) transitions 17: 4 91.30/34.36 - Rank function 2: 91.30/34.36 RF for loc. 6: 3+2*x3 91.30/34.36 RF for loc. 7: 1+2*x3 91.30/34.36 RF for loc. 8: 2+2*x3 91.30/34.36 RF for loc. 12: 2*x3 91.30/34.36 Bound for (chained) transitions 18: 4 91.30/34.36 - Rank function 3: 91.30/34.36 RF for loc. 6: 3 91.30/34.36 RF for loc. 7: 1 91.30/34.36 RF for loc. 8: 2 91.30/34.36 RF for loc. 12: 0 91.30/34.36 Bound for (chained) transitions 2: 3 91.30/34.36 Bound for (chained) transitions 6: 2 91.30/34.36 Bound for (chained) transitions 14: 1 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (13) 91.30/34.36 YES 91.30/34.36 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (14) 91.30/34.36 Obligation: 91.30/34.36 SCC 91.30/34.36 ---------------------------------------- 91.30/34.36 91.30/34.36 (15) SCC2IRS (SOUND) 91.30/34.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 91.30/34.36 Generated rules. Obtained 27 rulesP rules: 91.30/34.36 f_1063(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2881, v2882, v2883, v2884, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) -> f_1066(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1066(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) -> f_1070(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.36 f_1070(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) -> f_1073(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: v3006 = v2872 + 4 * v2879 && 5 <= v3006 91.30/34.36 f_1073(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1076(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1076(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1080(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1080(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2882, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1084(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1084(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1089(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: v3119 = 2 + v3006 && 7 <= v3119 91.30/34.36 f_1089(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1092(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1092(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1095(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1095(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2883, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1097(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1097(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1099(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1099(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, v2884, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1101(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1101(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1104(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: v3137 <= 0 91.30/34.36 f_1104(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1107(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1107(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1110(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1110(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1113(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.36 f_1113(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2881, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1116(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.36 f_1116(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1119(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v3210, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: v3210 = 1 + v2879 && 2 <= v3210 91.30/34.37 f_1119(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v3210, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1122(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v3210, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.37 f_1122(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v3210, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1125(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v3210, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: TRUE 91.30/34.37 f_1125(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v3006, v3119, v3137, 0, v3210, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1129(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.37 f_1129(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1133(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) :|: 0 = 0 91.30/34.37 f_1133(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 5) -> f_1137(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 12, 5) :|: v3210 < v2873 && 3 <= v2873 && 12 <= v2895 91.30/34.37 f_1137(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 12, 5) -> f_1142(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 12, 5) :|: 0 = 0 91.30/34.37 f_1142(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 12, 5) -> f_1147(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 12, 5) :|: TRUE 91.30/34.37 f_1147(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2883, v2884, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8, 12, 5) -> f_1060(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v3210, 1, v2879, v3006, v3119, v3137, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.37 f_1060(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2881, v2882, v2883, v2884, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) -> f_1063(v2872, v2873, v2874, v2875, v2876, v2877, v2878, v2879, 1, v2881, v2882, v2883, v2884, 0, v2886, v2892, v2887, v2893, v2888, v2894, v2895, v2896, v2897, v2898, v2899, v2900, v2901, v2902, v2889, v2890, v2891, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 Combined rules. Obtained 1 rulesP rules: 91.30/34.37 f_1063(v2872:0, v2873:0, v2874:0, v2875:0, v2876:0, v2877:0, v2878:0, v2879:0, 1, v2881:0, v2882:0, v2883:0, v2884:0, 0, v2886:0, v2892:0, v2887:0, v2893:0, v2888:0, v2894:0, v2895:0, v2896:0, v2897:0, v2898:0, v2899:0, v2900:0, v2901:0, v2902:0, v2889:0, v2890:0, v2891:0, 3, 7, 2, 4, 8) -> f_1063(v2872:0, v2873:0, v2874:0, v2875:0, v2876:0, v2877:0, v2878:0, 1 + v2879:0, 1, v2879:0, v2872:0 + 4 * v2879:0, 2 + (v2872:0 + 4 * v2879:0), v3137:0, 0, v2886:0, v2892:0, v2887:0, v2893:0, v2888:0, v2894:0, v2895:0, v2896:0, v2897:0, v2898:0, v2899:0, v2900:0, v2901:0, v2902:0, v2889:0, v2890:0, v2891:0, 3, 7, 2, 4, 8) :|: v2872:0 + 4 * v2879:0 > 4 && v3137:0 < 1 && v2879:0 > 0 && v2873:0 > 2 && v2895:0 > 11 && v2873:0 > 1 + v2879:0 91.30/34.37 Filtered unneeded arguments: 91.30/34.37 f_1063(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_1063(x1, x2, x8, x21) 91.30/34.37 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 91.30/34.37 f_1063(v2872:0, v2873:0, v2879:0, v2895:0) -> f_1063(v2872:0, v2873:0, 1 + v2879:0, v2895:0) :|: v2879:0 > 0 && v2872:0 + 4 * v2879:0 > 4 && v2873:0 > 2 && v2873:0 > 1 + v2879:0 && v2895:0 > 11 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (16) 91.30/34.37 Obligation: 91.30/34.37 Rules: 91.30/34.37 f_1063(v2872:0, v2873:0, v2879:0, v2895:0) -> f_1063(v2872:0, v2873:0, 1 + v2879:0, v2895:0) :|: v2879:0 > 0 && v2872:0 + 4 * v2879:0 > 4 && v2873:0 > 2 && v2873:0 > 1 + v2879:0 && v2895:0 > 11 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (17) IRS2T2 (EQUIVALENT) 91.30/34.37 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 91.30/34.37 91.30/34.37 (f_1063_4,1) 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (18) 91.30/34.37 Obligation: 91.30/34.37 START: 0; 91.30/34.37 91.30/34.37 FROM: 0; 91.30/34.37 TO: 1; 91.30/34.37 91.30/34.37 FROM: 1; 91.30/34.37 oldX0 := x0; 91.30/34.37 oldX1 := x1; 91.30/34.37 oldX2 := x2; 91.30/34.37 oldX3 := x3; 91.30/34.37 assume(oldX2 > 0 && oldX0 + 4 * oldX2 > 4 && oldX1 > 2 && oldX1 > 1 + oldX2 && oldX3 > 11); 91.30/34.37 x0 := oldX0; 91.30/34.37 x1 := oldX1; 91.30/34.37 x2 := 1 + oldX2; 91.30/34.37 x3 := oldX3; 91.30/34.37 TO: 1; 91.30/34.37 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (19) T2 (EQUIVALENT) 91.30/34.37 Initially, performed program simplifications using lexicographic rank functions: 91.30/34.37 * Removed transitions 1, 3, 4 using the following rank functions: 91.30/34.37 - Rank function 1: 91.30/34.37 RF for loc. 5: 1+2*x1-2*x2 91.30/34.37 RF for loc. 6: 2*x1-2*x2 91.30/34.37 Bound for (chained) transitions 3: 4 91.30/34.37 - Rank function 2: 91.30/34.37 RF for loc. 5: 2*x1-2*x2 91.30/34.37 RF for loc. 6: -1+2*x1-2*x2 91.30/34.37 Bound for (chained) transitions 4: 3 91.30/34.37 - Rank function 3: 91.30/34.37 RF for loc. 5: 0 91.30/34.37 RF for loc. 6: -1 91.30/34.37 Bound for (chained) transitions 1: 0 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (20) 91.30/34.37 YES 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (21) 91.30/34.37 Obligation: 91.30/34.37 SCC 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (22) SCC2IRS (SOUND) 91.30/34.37 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 91.30/34.37 Generated rules. Obtained 15 rulesP rules: 91.30/34.37 f_780(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_783(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: v1377 = 1 + v1352 && 2 <= v1377 91.30/34.37 f_783(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_787(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.37 f_787(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_791(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 f_791(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_796(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 f_796(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_801(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 1 + v1396 = v1350 && 0 <= v1396 91.30/34.37 f_801(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_806(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.37 f_806(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_810(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.37 f_810(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_814(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 f_814(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1377, v1396, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_818(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1350, v1352, v1377, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 f_818(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1350, v1352, v1377, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_822(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 f_822(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_826(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 < v1396 && 2 <= v1350 91.30/34.37 f_826(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_831(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 f_831(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_836(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.37 f_836(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_777(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1396, v1352, v1377, v1350, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: TRUE 91.30/34.37 f_777(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1351, v1352, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) -> f_780(v1340, v1341, v1342, v1343, v1344, v1345, v1346, 0, 1, v1349, v1350, v1352, v1353, v1354, v1360, v1355, v1361, v1356, v1362, v1363, v1364, v1365, v1366, v1367, v1368, v1357, v1358, v1359, 3, 7, 2, 4, 8) :|: 0 = 0 91.30/34.37 Combined rules. Obtained 1 rulesP rules: 91.30/34.37 f_780(v1340:0, v1341:0, v1342:0, v1343:0, v1344:0, v1345:0, v1346:0, 0, 1, v1349:0, 1 + v1396:0, v1352:0, v1353:0, v1354:0, v1360:0, v1355:0, v1361:0, v1356:0, v1362:0, v1363:0, v1364:0, v1365:0, v1366:0, v1367:0, v1368:0, v1357:0, v1358:0, v1359:0, 3, 7, 2, 4, 8) -> f_780(v1340:0, v1341:0, v1342:0, v1343:0, v1344:0, v1345:0, v1346:0, 0, 1, v1349:0, v1396:0, 1 + v1352:0, 1 + v1396:0, v1354:0, v1360:0, v1355:0, v1361:0, v1356:0, v1362:0, v1363:0, v1364:0, v1365:0, v1366:0, v1367:0, v1368:0, v1357:0, v1358:0, v1359:0, 3, 7, 2, 4, 8) :|: v1396:0 > 0 && v1352:0 > 0 91.30/34.37 Filtered unneeded arguments: 91.30/34.37 f_780(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33) -> f_780(x11, x12) 91.30/34.37 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 91.30/34.37 f_780(sum~cons_1~v1396:0, v1352:0) -> f_780(v1396:0, 1 + v1352:0) :|: v1396:0 > 0 && v1352:0 > 0 && sum~cons_1~v1396:0 = 1 + v1396:0 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (23) 91.30/34.37 Obligation: 91.30/34.37 Rules: 91.30/34.37 f_780(sum~cons_1~v1396:0, v1352:0) -> f_780(v1396:0, 1 + v1352:0) :|: v1396:0 > 0 && v1352:0 > 0 && sum~cons_1~v1396:0 = 1 + v1396:0 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (24) IntTRSCompressionProof (EQUIVALENT) 91.30/34.37 Compressed rules. 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (25) 91.30/34.37 Obligation: 91.30/34.37 Rules: 91.30/34.37 f_780(sum~cons_1~v1396:0:0, v1352:0:0) -> f_780(v1396:0:0, 1 + v1352:0:0) :|: v1396:0:0 > 0 && v1352:0:0 > 0 && sum~cons_1~v1396:0:0 = 1 + v1396:0:0 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (26) PolynomialOrderProcessor (EQUIVALENT) 91.30/34.37 Found the following polynomial interpretation: 91.30/34.37 [f_780(x, x1)] = x 91.30/34.37 91.30/34.37 The following rules are decreasing: 91.30/34.37 f_780(sum~cons_1~v1396:0:0, v1352:0:0) -> f_780(v1396:0:0, 1 + v1352:0:0) :|: v1396:0:0 > 0 && v1352:0:0 > 0 && sum~cons_1~v1396:0:0 = 1 + v1396:0:0 91.30/34.37 The following rules are bounded: 91.30/34.37 f_780(sum~cons_1~v1396:0:0, v1352:0:0) -> f_780(v1396:0:0, 1 + v1352:0:0) :|: v1396:0:0 > 0 && v1352:0:0 > 0 && sum~cons_1~v1396:0:0 = 1 + v1396:0:0 91.30/34.37 91.30/34.37 ---------------------------------------- 91.30/34.37 91.30/34.37 (27) 91.30/34.37 YES 91.81/34.71 EOF