/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 176 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 21.6 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 197 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 874 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 79 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 3 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 4 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 98 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 443 ms] (27) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "sumOfThirdBytes" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (numbers *i32, array_size i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i32, align 8 %2 = alloca i32, align 4 %i = alloca i32, align 4 %sum = alloca i32, align 4 %p = alloca *i8, align 8 store %numbers, %1 store %array_size, %2 store 0, %sum store 0, %i br %3 3: %4 = load %i %5 = load %2 %6 = icmp slt %4 %5 br %6, %7, %30 7: %8 = load %i %9 = sext i32 %8 to i64 %10 = load %1 %11 = getelementptr %10, %9 %12 = bitcast *i32 %11 to *i8 store %12, %p %13 = load %p %14 = getelementptr %13, 2 store %14, %p br %15 15: %16 = load %p %17 = load %16 %18 = sext i8 %17 to i32 %19 = icmp sgt %18 0 br %19, %20, %26 20: %21 = load %sum %22 = add %21 1 store %22, %sum %23 = load %p %24 = load %23 %25 = add %24 -1 store %25, %23 br %15 26: br %27 27: %28 = load %i %29 = add %28 1 store %29, %i br %3 30: %31 = load %sum ret %31 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %array_size = alloca i32, align 4 %numbers = alloca *i32, align 8 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %array_size %3 = load %array_size %4 = icmp slt %3 1 br %4, %5, %6 5: store 1, %array_size br %6 6: %7 = load %array_size %8 = sext i32 %7 to i64 %9 = mul %8 4 %10 = alloca i8, numElementsLit: %9 %11 = bitcast *i8 %10 to *i32 store %11, %numbers %12 = load %numbers %13 = load %array_size %14 = call i32 @sumOfThirdBytes(*i32 %12, i32 %13) ret %14 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 3 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 53 rulesP rules: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 4 rulesP rules: 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 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 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 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 Filtered unneeded arguments: 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) 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) Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 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 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 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 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 ---------------------------------------- (9) Obligation: Rules: 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 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 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 f_1214(x7, x8, x9, x10, x11, x12) -> f_1167(x7, x8, x9, x10, x11, x12) :|: x10 > 0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1214_6,1) (f_1167_6,2) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := nondet(); assume(oldX1 > 1 && oldX2 > 0 && oldX1 > 1 + oldX2 && oldX5 > 7 && oldX3 < 1 && oldX0 + (4 + 4 * oldX2) > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX6; x4 := oldX4; x5 := oldX5; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := nondet(); assume(oldX2 > 0 && oldX4 > 0 && oldX1 > 1 && oldX1 > 1 + oldX2 && oldX0 + (4 + 4 * oldX2) > 4 && oldX5 > 7 && oldX3 = 1); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX6; x4 := 1 + oldX4; x5 := oldX5; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := oldX3 - 1; assume(oldX6 > 0 && oldX4 > 0 && oldX3 = 1 + oldX6); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3 - 1; x4 := 1 + oldX4; x5 := oldX5; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; assume(oldX3 > 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; TO: 2; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: - Rank function 1: RF for loc. 6: 1+2*x1-2*x2 RF for loc. 7: 2*x1-2*x2 RF for loc. 8: 1+2*x1-2*x2 RF for loc. 12: 2*x1-2*x2 Bound for (chained) transitions 5: 5 Bound for (chained) transitions 17: 4 - Rank function 2: RF for loc. 6: 3+2*x3 RF for loc. 7: 1+2*x3 RF for loc. 8: 2+2*x3 RF for loc. 12: 2*x3 Bound for (chained) transitions 18: 4 - Rank function 3: RF for loc. 6: 3 RF for loc. 7: 1 RF for loc. 8: 2 RF for loc. 12: 0 Bound for (chained) transitions 2: 3 Bound for (chained) transitions 6: 2 Bound for (chained) transitions 14: 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 27 rulesP rules: f_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 1 rulesP rules: 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 Filtered unneeded arguments: 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) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 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 ---------------------------------------- (16) Obligation: Rules: 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 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1063_4,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 > 0 && oldX0 + 4 * oldX2 > 4 && oldX1 > 2 && oldX1 > 1 + oldX2 && oldX3 > 11); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX3; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x1-2*x2 RF for loc. 6: 2*x1-2*x2 Bound for (chained) transitions 3: 4 - Rank function 2: RF for loc. 5: 2*x1-2*x2 RF for loc. 6: -1+2*x1-2*x2 Bound for (chained) transitions 4: 3 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 15 rulesP rules: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 1 rulesP rules: 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 Filtered unneeded arguments: 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) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 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 ---------------------------------------- (23) Obligation: Rules: 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 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_780_2,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := oldX0 - 1; assume(oldX2 > 0 && oldX1 > 0 && oldX0 = 1 + oldX2); x0 := oldX0 - 1; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (26) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0 RF for loc. 6: 2*x0 Bound for (chained) transitions 3: 4 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (27) YES