/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 177 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 13.2 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 214 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 1154 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 117 ms] (16) IntTRS (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] (18) IntTRS (19) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (20) IntTRS (21) RankingReductionPairProof [EQUIVALENT, 21 ms] (22) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "cstrreplace" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (s *i8, old i8 signext, new i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca i8, align 1 %3 = alloca i8, align 1 %p = alloca *i8, align 8 %numReplaced = alloca i32, align 4 store %s, %1 store %old, %2 store %new, %3 %4 = load %1 store %4, %p store 0, %numReplaced br %5 5: %6 = load %p %7 = load %6 %8 = sext i8 %7 to i32 %9 = icmp ne %8 0 br %9, %10, %25 10: %11 = load %p %12 = load %11 %13 = sext i8 %12 to i32 %14 = load %2 %15 = sext i8 %14 to i32 %16 = icmp eq %13 %15 br %16, %17, %22 17: %18 = load %3 %19 = load %p store %18, %19 %20 = load %numReplaced %21 = add %20 1 store %21, %numReplaced br %22 22: %23 = load %p %24 = getelementptr %23, 1 store %24, %p br %5 25: %26 = load %numReplaced ret %26 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %length1 = alloca i32, align 4 %nondetString1 = alloca *i8, align 8 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %length1 %3 = load %length1 %4 = icmp slt %3 1 br %4, %5, %6 5: store 1, %length1 br %6 6: %7 = load %length1 %8 = sext i32 %7 to i64 %9 = mul %8 1 %10 = alloca i8, numElementsLit: %9 store %10, %nondetString1 %11 = load %length1 %12 = sub %11 1 %13 = sext i32 %12 to i64 %14 = load %nondetString1 %15 = getelementptr %14, %13 store 0, %15 %16 = load %nondetString1 %17 = call i32 @__VERIFIER_nondet_int() %18 = trunc i32 %17 to i8 %19 = call i32 @__VERIFIER_nondet_int() %20 = trunc i32 %19 to i8 %21 = call i32 @cstrreplace(*i8 %16, i8 signext %18, i8 signext %20) ret %21 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 2 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 55 rulesP rules: f_904(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) -> f_907(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4989, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) :|: v4989 = 1 + v4956 && 3 <= v4989 f_907(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4989, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) -> f_910(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4989, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) :|: TRUE f_910(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4989, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) -> f_913(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4989, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) :|: TRUE f_913(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4989, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) -> f_914(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4959, v4960, v4989, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, 0, v4964, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: TRUE f_914(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5114, 1, v5116, v5117, v5118, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_917(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_917(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_920(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: TRUE f_920(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_922(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_922(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_924(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: v5146 != 0 && v5118 < v5125 && 3 <= v5125 f_924(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_927(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_927(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_931(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: TRUE f_931(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_935(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_935(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_939(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_939(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_942(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_942(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_944(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_944(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_946(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_946(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_948(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: v5146 = v5107 f_946(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_949(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: v5146 != v5107 f_948(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_951(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_951(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_954(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: TRUE f_954(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_989(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, 1, v5114, v5116, v5117, v5114, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, v5108, 0, v5122, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: TRUE f_989(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5667, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_991(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5667, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: 0 = 0 f_991(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5667, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_992(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: 0 = 0 f_992(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_993(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: TRUE f_993(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5668, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_994(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: 0 = 0 f_994(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_995(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5769, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: v5769 = 1 + v5669 && 2 <= v5769 f_995(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5769, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_996(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5769, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: TRUE f_996(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5769, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_997(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5769, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: TRUE f_997(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5669, v5769, v5670, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5667, v5687, 0, v5674, v5676, v5678, v5679, 3, 7, 2, 4, 8) -> f_902(v5657, v5658, v5659, v5660, v5661, v5662, v5663, v5664, v5665, 1, v5670, v5669, v5769, v5671, v5680, v5672, v5681, v5673, v5682, v5677, v5683, v5684, v5685, v5686, v5687, 0, v5674, v4966, v4968, v4969, 3, 7, 2, 4, 8) :|: TRUE f_902(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4958, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) -> f_904(v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 1, v4959, v4960, v4961, v4970, v4962, v4971, v4963, v4972, v4967, v4973, v4974, v4975, v4976, v4958, v4977, 0, v4964, v4966, v4968, v4969, 3, 7, 2, 4, 8) :|: 0 = 0 f_949(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, 0, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_952(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, 0, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: 0 = 0 f_952(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, 0, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_955(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, 0, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) :|: TRUE f_955(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, 0, v5114, v5116, v5117, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, v5122, v5124, v5126, v5127, 3, 7, 2, 4, 8) -> f_956(v5106, v5107, v5108, v5109, v5110, v5111, v5112, v5113, v5118, v5146, 1, 0, v5114, v5116, v5117, v5114, v5119, v5128, v5120, v5129, v5121, v5130, v5125, v5131, v5132, v5133, v5134, v5108, v5122, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_956(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5395, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_958(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_958(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_960(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5423, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: v5423 = 1 + v5388 && 3 <= v5423 f_960(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5423, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_962(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5423, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_962(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5423, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_964(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5423, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_964(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5388, v5389, 1, 0, v5392, v5393, v5394, v5423, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_966(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5389, 1, v5388, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_966(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5389, 1, v5388, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_968(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, v5389, 1, v5388, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_968(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, v5389, 1, v5388, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_970(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_970(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_971(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: v5473 != 0 && v5423 < v5401 && 4 <= v5401 f_971(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_973(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_973(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_975(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_975(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5388, v5389, 0, v5392, v5393, v5394, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_977(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5389, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_977(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5389, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_979(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5389, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_979(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, v5389, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_981(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_981(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_982(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_982(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_983(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_983(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_984(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: v5473 = v5381 f_983(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_985(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: v5473 != v5381 f_984(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_986(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, 0, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_986(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, 0, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_988(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, 0, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_988(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, 0, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_989(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, 1, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, 0, v5399, v5676, v5678, v5679, 3, 7, 2, 4, 8) :|: TRUE f_985(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_987(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: 0 = 0 f_987(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_990(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE f_990(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5395, v5411, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) -> f_956(v5380, v5381, v5382, v5383, v5384, v5385, v5386, v5387, v5423, v5473, 1, 0, v5392, v5393, v5394, v5388, v5396, v5404, v5397, v5405, v5398, v5406, v5401, v5407, v5408, v5409, v5410, v5389, v5399, v5400, v5402, v5403, 3, 7, 2, 4, 8) :|: TRUE Combined rules. Obtained 15 rulesP rules: f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + v4956:0, 1, v4960:0, 1 + v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4956:0, v4950:0, 0, v4964:0, v4966:1, v4968:1, v4969:1, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 1 + v4956:0 && v4949:0 < 0 && v4960:0 > 0 && v4967:0 > 2 f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + v4956:0, 1, v4960:0, 1 + v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4956:0, v4950:0, 0, v4964:0, v4966:1, v4968:1, v4969:1, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 1 + v4956:0 && v4949:0 > 0 && v4960:0 > 0 && v4967:0 > 2 f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, v5423:0, v5473:0, 1, 0, v5392:0, v5393:0, v5394:0, v5388:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5389:0, v5395:0, v5411:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) -> f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, 1 + v5423:0, v5473:1, 1, 0, v5392:0, v5393:0, v5394:0, v5423:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5473:0, v5388:0, v5389:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v5423:0 > 1 && v5401:0 > 1 + v5423:0 && v5473:1 < 0 && v5473:0 < v5381:0 && v5401:0 > 3 f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, v5423:0, v5473:0, 1, 0, v5392:0, v5393:0, v5394:0, v5388:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5389:0, v5395:0, v5411:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) -> f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, 1 + v5423:0, v5473:1, 1, 0, v5392:0, v5393:0, v5394:0, v5423:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5473:0, v5388:0, v5389:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v5423:0 > 1 && v5401:0 > 1 + v5423:0 && v5473:1 > 0 && v5473:0 < v5381:0 && v5401:0 > 3 f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, v5423:0, v5473:0, 1, 0, v5392:0, v5393:0, v5394:0, v5388:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5389:0, v5395:0, v5411:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) -> f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, 1 + v5423:0, v5473:1, 1, 0, v5392:0, v5393:0, v5394:0, v5423:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5473:0, v5388:0, v5389:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v5423:0 > 1 && v5401:0 > 1 + v5423:0 && v5473:1 < 0 && v5473:0 > v5381:0 && v5401:0 > 3 f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, v5423:0, v5473:0, 1, 0, v5392:0, v5393:0, v5394:0, v5388:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5389:0, v5395:0, v5411:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) -> f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, 1 + v5423:0, v5473:1, 1, 0, v5392:0, v5393:0, v5394:0, v5423:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5473:0, v5388:0, v5389:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v5423:0 > 1 && v5401:0 > 1 + v5423:0 && v5473:1 > 0 && v5473:0 > v5381:0 && v5401:0 > 3 f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 < 0 && v5146:0 < v4949:0 && v5473:0 < 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 < 0 && v5146:0 < v4949:0 && v5473:0 > 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 < 0 && v5146:0 > v4949:0 && v5473:0 < 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 < 0 && v5146:0 > v4949:0 && v5473:0 > 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 > 0 && v5146:0 < v4949:0 && v5473:0 < 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 > 0 && v5146:0 < v4949:0 && v5473:0 > 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 > 0 && v5146:0 > v4949:0 && v5473:0 < 0 && v4967:0 > 1 + (1 + v4956:0) f_904(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, v4956:0, 1, v4959:0, v4960:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v4958:0, v4977:0, 0, v4964:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) -> f_983(v4948:0, v4949:0, v4950:0, v4951:0, v4952:0, v4953:0, v4954:0, v4955:0, 1 + (1 + v4956:0), v5473:0, 1, 0, v4956:0, v4959:0, v4960:0, 1 + v4956:0, v4961:0, v4970:0, v4962:0, v4971:0, v4963:0, v4972:0, v4967:0, v4973:0, v4974:0, v4975:0, v4976:0, v5146:0, v4956:0, v4950:0, v4964:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) :|: v4956:0 > 1 && v4967:0 > 3 && v4967:0 > 1 + v4956:0 && v5146:0 > 0 && v5146:0 > v4949:0 && v5473:0 > 0 && v4967:0 > 1 + (1 + v4956:0) f_983(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, v5423:0, v5381:0, 1, 0, v5392:0, v5393:0, v5394:0, v5388:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5389:0, v5395:0, v5411:0, v5399:0, v5400:0, v5402:0, v5403:0, 3, 7, 2, 4, 8) -> f_904(v5380:0, v5381:0, v5382:0, v5383:0, v5384:0, v5385:0, v5386:0, v5387:0, v5423:0, 1, v5394:0, 1 + v5394:0, v5396:0, v5404:0, v5397:0, v5405:0, v5398:0, v5406:0, v5401:0, v5407:0, v5408:0, v5409:0, v5410:0, v5388:0, v5389:0, 0, v5399:0, v4966:0, v4968:0, v4969:0, 3, 7, 2, 4, 8) :|: v5394:0 > 0 Filtered unneeded arguments: f_904(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) -> f_904(x2, x9, x12, x19) f_983(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) -> f_983(x2, x9, x10, x15, x23) Removed division, modulo operations, cleaned up constraints. Obtained 9 rules.P rules: f_904(v4949:0, v4956:0, v4960:0, v4967:0) -> f_904(v4949:0, 1 + v4956:0, 1 + v4960:0, v4967:0) :|: v4967:0 > 1 + v4956:0 && v4956:0 > 1 && v4949:0 < 0 && v4967:0 > 2 && v4960:0 > 0 f_904(v4949:0, v4956:0, v4960:0, v4967:0) -> f_904(v4949:0, 1 + v4956:0, 1 + v4960:0, v4967:0) :|: v4967:0 > 1 + v4956:0 && v4956:0 > 1 && v4949:0 > 0 && v4967:0 > 2 && v4960:0 > 0 f_983(v5381:0, v5423:0, v5473:0, v5394:0, v5401:0) -> f_983(v5381:0, 1 + v5423:0, v5473:1, v5394:0, v5401:0) :|: v5401:0 > 1 + v5423:0 && v5423:0 > 1 && v5473:1 < 0 && v5401:0 > 3 && v5473:0 < v5381:0 f_983(v5381:0, v5423:0, v5473:0, v5394:0, v5401:0) -> f_983(v5381:0, 1 + v5423:0, v5473:1, v5394:0, v5401:0) :|: v5401:0 > 1 + v5423:0 && v5423:0 > 1 && v5473:1 > 0 && v5401:0 > 3 && v5473:0 < v5381:0 f_983(v5381:0, v5423:0, v5473:0, v5394:0, v5401:0) -> f_983(v5381:0, 1 + v5423:0, v5473:1, v5394:0, v5401:0) :|: v5401:0 > 1 + v5423:0 && v5423:0 > 1 && v5473:1 < 0 && v5401:0 > 3 && v5473:0 > v5381:0 f_983(v5381:0, v5423:0, v5473:0, v5394:0, v5401:0) -> f_983(v5381:0, 1 + v5423:0, v5473:1, v5394:0, v5401:0) :|: v5401:0 > 1 + v5423:0 && v5423:0 > 1 && v5473:1 > 0 && v5401:0 > 3 && v5473:0 > v5381:0 f_904(v4949:0, v4956:0, v4960:0, v4967:0) -> f_983(v4949:0, 1 + (1 + v4956:0), v5473:0, v4960:0, v4967:0) :|: v4967:0 > 3 && v4956:0 > 1 && v4967:0 > 1 + v4956:0 && v4967:0 > 1 + (1 + v4956:0) && v5473:0 < 0 f_904(v4949:0, v4956:0, v4960:0, v4967:0) -> f_983(v4949:0, 1 + (1 + v4956:0), v5473:0, v4960:0, v4967:0) :|: v4967:0 > 3 && v4956:0 > 1 && v4967:0 > 1 + v4956:0 && v4967:0 > 1 + (1 + v4956:0) && v5473:0 > 0 f_983(v5381:0, v5423:0, v5381:01, v5394:0, v5401:0) -> f_904(v5381:0, v5423:0, 1 + v5394:0, v5401:0) :|: v5394:0 > 0 && v5381:0 = v5381:01 ---------------------------------------- (9) Obligation: Rules: f_904(v4949:0, v4956:0, v4960:0, v4967:0) -> f_904(v4949:0, 1 + v4956:0, 1 + v4960:0, v4967:0) :|: v4967:0 > 1 + v4956:0 && v4956:0 > 1 && v4949:0 < 0 && v4967:0 > 2 && v4960:0 > 0 f_904(x, x1, x2, x3) -> f_904(x, 1 + x1, 1 + x2, x3) :|: x3 > 1 + x1 && x1 > 1 && x > 0 && x3 > 2 && x2 > 0 f_983(v5381:0, v5423:0, v5473:0, v5394:0, v5401:0) -> f_983(v5381:0, 1 + v5423:0, v5473:1, v5394:0, v5401:0) :|: v5401:0 > 1 + v5423:0 && v5423:0 > 1 && v5473:1 < 0 && v5401:0 > 3 && v5473:0 < v5381:0 f_983(x4, x5, x6, x7, x8) -> f_983(x4, 1 + x5, x9, x7, x8) :|: x8 > 1 + x5 && x5 > 1 && x9 > 0 && x8 > 3 && x6 < x4 f_983(x10, x11, x12, x13, x14) -> f_983(x10, 1 + x11, x15, x13, x14) :|: x14 > 1 + x11 && x11 > 1 && x15 < 0 && x14 > 3 && x12 > x10 f_983(x16, x17, x18, x19, x20) -> f_983(x16, 1 + x17, x21, x19, x20) :|: x20 > 1 + x17 && x17 > 1 && x21 > 0 && x20 > 3 && x18 > x16 f_904(x22, x23, x24, x25) -> f_983(x22, 1 + (1 + x23), x26, x24, x25) :|: x25 > 3 && x23 > 1 && x25 > 1 + x23 && x25 > 1 + (1 + x23) && x26 < 0 f_904(x27, x28, x29, x30) -> f_983(x27, 1 + (1 + x28), x31, x29, x30) :|: x30 > 3 && x28 > 1 && x30 > 1 + x28 && x30 > 1 + (1 + x28) && x31 > 0 f_983(x32, x33, x34, x35, x36) -> f_904(x32, x33, 1 + x35, x36) :|: x35 > 0 && x32 = x34 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_904_5,1) (f_983_5,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 := nondet(); assume(oldX3 > 1 + oldX1 && oldX1 > 1 && oldX0 < 0 && oldX3 > 2 && oldX2 > 0); x0 := oldX0; x1 := 1 + oldX1; x2 := 1 + oldX2; x3 := oldX3; x4 := oldX5; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX3 > 1 + oldX1 && oldX1 > 1 && oldX0 > 0 && oldX3 > 2 && oldX2 > 0); x0 := oldX0; x1 := 1 + oldX1; x2 := 1 + oldX2; x3 := oldX3; x4 := oldX5; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 > 1 + oldX1 && oldX1 > 1 && oldX5 < 0 && oldX4 > 3 && oldX2 < oldX0); x0 := oldX0; x1 := 1 + oldX1; x2 := oldX5; x3 := oldX3; x4 := oldX4; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 > 1 + oldX1 && oldX1 > 1 && oldX5 > 0 && oldX4 > 3 && oldX2 < oldX0); x0 := oldX0; x1 := 1 + oldX1; x2 := oldX5; x3 := oldX3; x4 := oldX4; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 > 1 + oldX1 && oldX1 > 1 && oldX5 < 0 && oldX4 > 3 && oldX2 > oldX0); x0 := oldX0; x1 := 1 + oldX1; x2 := oldX5; x3 := oldX3; x4 := oldX4; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 > 1 + oldX1 && oldX1 > 1 && oldX5 > 0 && oldX4 > 3 && oldX2 > oldX0); x0 := oldX0; x1 := 1 + oldX1; x2 := oldX5; x3 := oldX3; x4 := oldX4; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX3 > 3 && oldX1 > 1 && oldX3 > 1 + oldX1 && oldX3 > 1 + (1 + oldX1) && oldX5 < 0); x0 := oldX0; x1 := 1 + (1 + oldX1); x2 := oldX5; x3 := oldX2; x4 := oldX3; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX3 > 3 && oldX1 > 1 && oldX3 > 1 + oldX1 && oldX3 > 1 + (1 + oldX1) && oldX5 > 0); x0 := oldX0; x1 := 1 + (1 + oldX1); x2 := oldX5; x3 := oldX2; x4 := oldX3; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX3 > 0 && oldX0 = oldX2); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX3; x3 := oldX4; x4 := oldX5; TO: 1; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 7, 8, 20, 23, 24, 25, 26, 27 using the following rank functions: - Rank function 1: RF for loc. 6: -1-3*x1+3*x3 RF for loc. 7: 3-3*x1+3*x4 RF for loc. 8: -2-3*x1+3*x3 RF for loc. 12: -3*x1+3*x4 Bound for (chained) transitions 5: 4 Bound for (chained) transitions 6: 4 Bound for (chained) transitions 7: 7 Bound for (chained) transitions 8: 4 - Rank function 2: RF for loc. 6: -1 RF for loc. 7: 0 RF for loc. 8: -2 RF for loc. 12: 0 Bound for (chained) transitions 2: -1 Bound for (chained) transitions 27: 0 - Rank function 3: RF for loc. 7: 1-2*x1+2*x4 RF for loc. 12: -2*x1+2*x4 Bound for (chained) transitions 23: 4 Bound for (chained) transitions 24: 4 Bound for (chained) transitions 25: 4 Bound for (chained) transitions 26: 4 - Rank function 4: RF for loc. 7: 0 RF for loc. 12: -1 Bound for (chained) transitions 20: 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_581(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v1838, 1, v1837, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_587(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, v1838, 1, v1837, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: TRUE f_587(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, v1838, 1, v1837, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_592(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_592(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_597(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: v2105 != 0 && v1841 < v1847 && 4 <= v1847 f_597(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_601(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_601(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_605(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: TRUE f_605(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1837, v1838, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_609(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1838, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_609(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1838, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_615(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1838, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_615(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, v1838, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_621(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_621(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_627(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_627(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_630(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_630(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_634(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: v2105 != v1830 f_634(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_638(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_638(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_642(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: TRUE f_642(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1837, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_646(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 f_646(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_650(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: v2465 = 1 + v1841 && 4 <= v2465 f_650(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_654(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: TRUE f_654(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_659(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: TRUE f_659(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1837, v1838, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_576(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v2105, 1, 0, v2465, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: TRUE f_576(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1837, v1838, 1, 0, v1841, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) -> f_581(v1829, v1830, v1831, v1832, v1833, v1834, v1835, v1836, v1841, v1838, 1, v1837, 0, v1842, v1850, v1843, v1851, v1844, v1852, v1847, v1853, v1854, v1855, v1857, v1845, v1856, v1858, v1846, v1848, v1849, 3, 7, 2, 4, 8) :|: 0 = 0 Combined rules. Obtained 4 rulesP rules: f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, v1841:0, v1838:0, 1, v1837:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) -> f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, 1 + v1841:0, v2105:0, 1, v1841:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) :|: v1847:0 > v1841:0 && v2105:0 < 0 && v1847:0 > 3 && v1841:0 > 2 && v2105:0 < v1830:0 f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, v1841:0, v1838:0, 1, v1837:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) -> f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, 1 + v1841:0, v2105:0, 1, v1841:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) :|: v1847:0 > v1841:0 && v2105:0 < 0 && v1847:0 > 3 && v1841:0 > 2 && v2105:0 > v1830:0 f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, v1841:0, v1838:0, 1, v1837:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) -> f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, 1 + v1841:0, v2105:0, 1, v1841:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) :|: v1847:0 > v1841:0 && v2105:0 > 0 && v1847:0 > 3 && v1841:0 > 2 && v2105:0 < v1830:0 f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, v1841:0, v1838:0, 1, v1837:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) -> f_581(v1829:0, v1830:0, v1831:0, v1832:0, v1833:0, v1834:0, v1835:0, v1836:0, 1 + v1841:0, v2105:0, 1, v1841:0, 0, v1842:0, v1850:0, v1843:0, v1851:0, v1844:0, v1852:0, v1847:0, v1853:0, v1854:0, v1855:0, v1857:0, v1845:0, v1856:0, v1858:0, v1846:0, v1848:0, v1849:0, 3, 7, 2, 4, 8) :|: v1847:0 > v1841:0 && v2105:0 > 0 && v1847:0 > 3 && v1841:0 > 2 && v2105:0 > v1830:0 Filtered unneeded arguments: f_581(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) -> f_581(x2, x9, x20) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_581(v1830:0, v1841:0, v1847:0) -> f_581(v1830:0, 1 + v1841:0, v1847:0) :|: v1847:0 > 3 && v1841:0 > 2 && v1847:0 > v1841:0 ---------------------------------------- (16) Obligation: Rules: f_581(v1830:0, v1841:0, v1847:0) -> f_581(v1830:0, 1 + v1841:0, v1847:0) :|: v1847:0 > 3 && v1841:0 > 2 && v1847:0 > v1841:0 ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f_581(v1830:0:0, v1841:0:0, v1847:0:0) -> f_581(v1830:0:0, 1 + v1841:0:0, v1847:0:0) :|: v1847:0:0 > 3 && v1841:0:0 > 2 && v1847:0:0 > v1841:0:0 ---------------------------------------- (19) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f_581(x1, x2, x3) -> f_581(x2, x3) ---------------------------------------- (20) Obligation: Rules: f_581(v1841:0:0, v1847:0:0) -> f_581(1 + v1841:0:0, v1847:0:0) :|: v1847:0:0 > 3 && v1841:0:0 > 2 && v1847:0:0 > v1841:0:0 ---------------------------------------- (21) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_581 ] = f_581_2 + -1*f_581_1 The following rules are decreasing: f_581(v1841:0:0, v1847:0:0) -> f_581(1 + v1841:0:0, v1847:0:0) :|: v1847:0:0 > 3 && v1841:0:0 > 2 && v1847:0:0 > v1841:0:0 The following rules are bounded: f_581(v1841:0:0, v1847:0:0) -> f_581(1 + v1841:0:0, v1847:0:0) :|: v1847:0:0 > 3 && v1841:0:0 > 2 && v1847:0:0 > v1841:0:0 ---------------------------------------- (22) YES