/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: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 170 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 22.2 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 149 ms] (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] (11) IntTRS (12) RankingReductionPairProof [EQUIVALENT, 24 ms] (13) IntTRS (14) TerminationGraphProcessor [EQUIVALENT, 0 ms] (15) IntTRS (16) IntTRSCompressionProof [EQUIVALENT, 0 ms] (17) IntTRS (18) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (19) IntTRS (20) RankingReductionPairProof [EQUIVALENT, 0 ms] (21) YES (22) LLVM Symbolic Execution SCC (23) SCC2IRS [SOUND, 59 ms] (24) IntTRS (25) IntTRSCompressionProof [EQUIVALENT, 0 ms] (26) IntTRS (27) PolynomialOrderProcessor [EQUIVALENT, 4 ms] (28) YES (29) LLVM Symbolic Execution SCC (30) SCC2IRS [SOUND, 113 ms] (31) IntTRS (32) IntTRSCompressionProof [EQUIVALENT, 0 ms] (33) IntTRS (34) RankingReductionPairProof [EQUIVALENT, 18 ms] (35) 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) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: f_1214(x7:0, x8:0, x9:0, x10:0, x11:0, x12:0) -> f_1167(x7:0, x8:0, x9:0, x10:0, x11:0, x12:0) :|: x10:0 > 0 f_1167(x:0, x1:0, x2:0, cons_1, x4:0, x5:0) -> f_1214(x:0, x1:0, 1 + x2:0, x6:0, 1 + x4:0, x5:0) :|: x:0 + (4 + 4 * x2:0) > 4 && x5:0 > 7 && x1:0 > 1 + x2:0 && x1:0 > 1 && x4:0 > 0 && x2:0 > 0 && cons_1 = 1 f_1214(v4237:0:0, v4238:0:0, v4244:0:0, v4285:0:0, v4252:0:0, v4264:0:0) -> f_1214(v4237:0:0, v4238:0:0, 1 + v4244:0:0, v4285:1:0, v4252:0:0, v4264:0:0) :|: v4285:0:0 < 1 && v4237:0:0 + (4 + 4 * v4244:0:0) > 4 && v4264:0:0 > 7 && v4238:0:0 > 1 + v4244:0:0 && v4244:0:0 > 0 && v4238:0:0 > 1 f_1167(v3600:0:0, v3601:0:0, v3607:0:0, sum~cons_1~v3889:0:0, v3613:0:0, v3627:0:0) -> f_1167(v3600:0:0, v3601:0:0, v3607:0:0, v3889:0:0, 1 + v3613:0:0, v3627:0:0) :|: v3889:0:0 > 0 && v3613:0:0 > 0 && sum~cons_1~v3889:0:0 = 1 + v3889:0:0 ---------------------------------------- (12) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_1214 ] = 2*f_1214_1 + 10*f_1214_2 + -2*f_1214_3 + 2*f_1214_6 + 1 [ f_1167 ] = 2*f_1167_1 + 10*f_1167_2 + -2*f_1167_3 + 2*f_1167_6 The following rules are decreasing: f_1214(x7:0, x8:0, x9:0, x10:0, x11:0, x12:0) -> f_1167(x7:0, x8:0, x9:0, x10:0, x11:0, x12:0) :|: x10:0 > 0 f_1167(x:0, x1:0, x2:0, cons_1, x4:0, x5:0) -> f_1214(x:0, x1:0, 1 + x2:0, x6:0, 1 + x4:0, x5:0) :|: x:0 + (4 + 4 * x2:0) > 4 && x5:0 > 7 && x1:0 > 1 + x2:0 && x1:0 > 1 && x4:0 > 0 && x2:0 > 0 && cons_1 = 1 f_1214(v4237:0:0, v4238:0:0, v4244:0:0, v4285:0:0, v4252:0:0, v4264:0:0) -> f_1214(v4237:0:0, v4238:0:0, 1 + v4244:0:0, v4285:1:0, v4252:0:0, v4264:0:0) :|: v4285:0:0 < 1 && v4237:0:0 + (4 + 4 * v4244:0:0) > 4 && v4264:0:0 > 7 && v4238:0:0 > 1 + v4244:0:0 && v4244:0:0 > 0 && v4238:0:0 > 1 The following rules are bounded: f_1167(x:0, x1:0, x2:0, cons_1, x4:0, x5:0) -> f_1214(x:0, x1:0, 1 + x2:0, x6:0, 1 + x4:0, x5:0) :|: x:0 + (4 + 4 * x2:0) > 4 && x5:0 > 7 && x1:0 > 1 + x2:0 && x1:0 > 1 && x4:0 > 0 && x2:0 > 0 && cons_1 = 1 f_1214(v4237:0:0, v4238:0:0, v4244:0:0, v4285:0:0, v4252:0:0, v4264:0:0) -> f_1214(v4237:0:0, v4238:0:0, 1 + v4244:0:0, v4285:1:0, v4252:0:0, v4264:0:0) :|: v4285:0:0 < 1 && v4237:0:0 + (4 + 4 * v4244:0:0) > 4 && v4264:0:0 > 7 && v4238:0:0 > 1 + v4244:0:0 && v4244:0:0 > 0 && v4238:0:0 > 1 ---------------------------------------- (13) Obligation: Rules: f_1214(x7:0, x8:0, x9:0, x10:0, x11:0, x12:0) -> f_1167(x7:0, x8:0, x9:0, x10:0, x11:0, x12:0) :|: x10:0 > 0 f_1167(v3600:0:0, v3601:0:0, v3607:0:0, sum~cons_1~v3889:0:0, v3613:0:0, v3627:0:0) -> f_1167(v3600:0:0, v3601:0:0, v3607:0:0, v3889:0:0, 1 + v3613:0:0, v3627:0:0) :|: v3889:0:0 > 0 && v3613:0:0 > 0 && sum~cons_1~v3889:0:0 = 1 + v3889:0:0 ---------------------------------------- (14) TerminationGraphProcessor (EQUIVALENT) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (15) Obligation: Rules: f_1167(v3600:0:0, v3601:0:0, v3607:0:0, sum~cons_1~v3889:0:0, v3613:0:0, v3627:0:0) -> f_1167(v3600:0:0, v3601:0:0, v3607:0:0, v3889:0:0, 1 + v3613:0:0, v3627:0:0) :|: v3889:0:0 > 0 && v3613:0:0 > 0 && sum~cons_1~v3889:0:0 = 1 + v3889:0:0 ---------------------------------------- (16) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (17) Obligation: Rules: f_1167(v3600:0:0:0, v3601:0:0:0, v3607:0:0:0, sum~cons_1~v3889:0:0:0, v3613:0:0:0, v3627:0:0:0) -> f_1167(v3600:0:0:0, v3601:0:0:0, v3607:0:0:0, v3889:0:0:0, 1 + v3613:0:0:0, v3627:0:0:0) :|: v3889:0:0:0 > 0 && v3613:0:0:0 > 0 && sum~cons_1~v3889:0:0:0 = 1 + v3889:0:0:0 ---------------------------------------- (18) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f_1167(x1, x2, x3, x4, x5, x6) -> f_1167(x4, x5) ---------------------------------------- (19) Obligation: Rules: f_1167(sum~cons_1~v3889:0:0:0, v3613:0:0:0) -> f_1167(v3889:0:0:0, 1 + v3613:0:0:0) :|: v3889:0:0:0 > 0 && v3613:0:0:0 > 0 && sum~cons_1~v3889:0:0:0 = 1 + v3889:0:0:0 ---------------------------------------- (20) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_1167 ] = f_1167_1 The following rules are decreasing: f_1167(sum~cons_1~v3889:0:0:0, v3613:0:0:0) -> f_1167(v3889:0:0:0, 1 + v3613:0:0:0) :|: v3889:0:0:0 > 0 && v3613:0:0:0 > 0 && sum~cons_1~v3889:0:0:0 = 1 + v3889:0:0:0 The following rules are bounded: f_1167(sum~cons_1~v3889:0:0:0, v3613:0:0:0) -> f_1167(v3889:0:0:0, 1 + v3613:0:0:0) :|: v3889:0:0:0 > 0 && v3613:0:0:0 > 0 && sum~cons_1~v3889:0:0:0 = 1 + v3889:0:0:0 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: SCC ---------------------------------------- (23) 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 ---------------------------------------- (24) 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 ---------------------------------------- (25) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (26) Obligation: Rules: f_1063(v2872:0:0, v2873:0:0, v2879:0:0, v2895:0:0) -> f_1063(v2872:0:0, v2873:0:0, 1 + v2879:0:0, v2895:0:0) :|: v2873:0:0 > 1 + v2879:0:0 && v2895:0:0 > 11 && v2873:0:0 > 2 && v2872:0:0 + 4 * v2879:0:0 > 4 && v2879:0:0 > 0 ---------------------------------------- (27) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f_1063(x, x1, x2, x3)] = -2 + x1 - x2 The following rules are decreasing: f_1063(v2872:0:0, v2873:0:0, v2879:0:0, v2895:0:0) -> f_1063(v2872:0:0, v2873:0:0, 1 + v2879:0:0, v2895:0:0) :|: v2873:0:0 > 1 + v2879:0:0 && v2895:0:0 > 11 && v2873:0:0 > 2 && v2872:0:0 + 4 * v2879:0:0 > 4 && v2879:0:0 > 0 The following rules are bounded: f_1063(v2872:0:0, v2873:0:0, v2879:0:0, v2895:0:0) -> f_1063(v2872:0:0, v2873:0:0, 1 + v2879:0:0, v2895:0:0) :|: v2873:0:0 > 1 + v2879:0:0 && v2895:0:0 > 11 && v2873:0:0 > 2 && v2872:0:0 + 4 * v2879:0:0 > 4 && v2879:0:0 > 0 ---------------------------------------- (28) YES ---------------------------------------- (29) Obligation: SCC ---------------------------------------- (30) 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 ---------------------------------------- (31) 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 ---------------------------------------- (32) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (33) Obligation: Rules: 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 ---------------------------------------- (34) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_780 ] = f_780_1 The following rules are decreasing: 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 The following rules are bounded: 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 ---------------------------------------- (35) YES