38.10/12.40 YES 38.10/12.42 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 38.10/12.42 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 38.10/12.42 38.10/12.42 38.10/12.42 Termination of the given C Problem could be proven: 38.10/12.42 38.10/12.42 (0) C Problem 38.10/12.42 (1) CToLLVMProof [EQUIVALENT, 176 ms] 38.10/12.42 (2) LLVM problem 38.10/12.42 (3) LLVMToTerminationGraphProof [EQUIVALENT, 3409 ms] 38.10/12.42 (4) LLVM Symbolic Execution Graph 38.10/12.42 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 38.10/12.42 (6) AND 38.10/12.42 (7) LLVM Symbolic Execution SCC 38.10/12.42 (8) SCC2IRS [SOUND, 203 ms] 38.10/12.42 (9) IntTRS 38.10/12.42 (10) IRS2T2 [EQUIVALENT, 0 ms] 38.10/12.42 (11) T2IntSys 38.10/12.42 (12) T2 [EQUIVALENT, 833 ms] 38.10/12.42 (13) YES 38.10/12.42 (14) LLVM Symbolic Execution SCC 38.10/12.42 (15) SCC2IRS [SOUND, 113 ms] 38.10/12.42 (16) IntTRS 38.10/12.42 (17) IRS2T2 [EQUIVALENT, 4 ms] 38.10/12.42 (18) T2IntSys 38.10/12.42 (19) T2 [EQUIVALENT, 771 ms] 38.10/12.42 (20) YES 38.10/12.42 (21) LLVM Symbolic Execution SCC 38.10/12.42 (22) SCC2IRS [SOUND, 149 ms] 38.10/12.42 (23) IntTRS 38.10/12.42 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 38.10/12.42 (25) IntTRS 38.10/12.42 (26) RankingReductionPairProof [EQUIVALENT, 13 ms] 38.10/12.42 (27) YES 38.10/12.42 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (0) 38.10/12.42 Obligation: 38.10/12.42 c file /export/starexec/sandbox/benchmark/theBenchmark.c 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (1) CToLLVMProof (EQUIVALENT) 38.10/12.42 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (2) 38.10/12.42 Obligation: 38.10/12.42 LLVM Problem 38.10/12.42 38.10/12.42 Aliases: 38.10/12.42 38.10/12.42 Data layout: 38.10/12.42 38.10/12.42 "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" 38.10/12.42 38.10/12.42 Machine: 38.10/12.42 38.10/12.42 "x86_64-pc-linux-gnu" 38.10/12.42 38.10/12.42 Type definitions: 38.10/12.42 38.10/12.42 Global variables: 38.10/12.42 38.10/12.42 Function declarations and definitions: 38.10/12.42 38.10/12.42 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 38.10/12.42 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 38.10/12.42 0: 38.10/12.42 %1 = alloca i32, align 4 38.10/12.42 %x = alloca *i32, align 8 38.10/12.42 %y = alloca *i32, align 8 38.10/12.42 %d = alloca *i32, align 8 38.10/12.42 store 0, %1 38.10/12.42 %2 = alloca i8, numElementsLit: 4 38.10/12.42 %3 = bitcast *i8 %2 to *i32 38.10/12.42 store %3, %x 38.10/12.42 %4 = alloca i8, numElementsLit: 4 38.10/12.42 %5 = bitcast *i8 %4 to *i32 38.10/12.42 store %5, %y 38.10/12.42 %6 = alloca i8, numElementsLit: 4 38.10/12.42 %7 = bitcast *i8 %6 to *i32 38.10/12.42 store %7, %d 38.10/12.42 br %8 38.10/12.42 8: 38.10/12.42 %9 = load %x 38.10/12.42 %10 = load %9 38.10/12.42 %11 = icmp sgt %10 0 38.10/12.42 br %11, %12, %20 38.10/12.42 12: 38.10/12.42 %13 = load %y 38.10/12.42 %14 = load %13 38.10/12.42 %15 = icmp sgt %14 0 38.10/12.42 br %15, %16, %20 38.10/12.42 16: 38.10/12.42 %17 = load %d 38.10/12.42 %18 = load %17 38.10/12.42 %19 = icmp sgt %18 0 38.10/12.42 br %20 38.10/12.42 20: 38.10/12.42 %21 = phi [0, %12], [0, %8], [%19, %16] 38.10/12.42 br %21, %22, %44 38.10/12.42 22: 38.10/12.42 %23 = call i32 @__VERIFIER_nondet_int() 38.10/12.42 %24 = icmp ne %23 0 38.10/12.42 br %24, %25, %32 38.10/12.42 25: 38.10/12.42 %26 = load %x 38.10/12.42 %27 = load %26 38.10/12.42 %28 = sub %27 1 38.10/12.42 %29 = load %x 38.10/12.42 store %28, %29 38.10/12.42 %30 = call i32 @__VERIFIER_nondet_int() 38.10/12.42 %31 = load %d 38.10/12.42 store %30, %31 38.10/12.42 br %43 38.10/12.42 32: 38.10/12.42 %33 = call i32 @__VERIFIER_nondet_int() 38.10/12.42 %34 = load %x 38.10/12.42 store %33, %34 38.10/12.42 %35 = load %y 38.10/12.42 %36 = load %35 38.10/12.42 %37 = sub %36 1 38.10/12.42 %38 = load %y 38.10/12.42 store %37, %38 38.10/12.42 %39 = load %d 38.10/12.42 %40 = load %39 38.10/12.42 %41 = sub %40 1 38.10/12.42 %42 = load %d 38.10/12.42 store %41, %42 38.10/12.42 br %43 38.10/12.42 43: 38.10/12.42 br %8 38.10/12.42 44: 38.10/12.42 %45 = load %1 38.10/12.42 ret %45 38.10/12.42 38.10/12.42 38.10/12.42 Analyze Termination of all function calls matching the pattern: 38.10/12.42 main() 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (3) LLVMToTerminationGraphProof (EQUIVALENT) 38.10/12.42 Constructed symbolic execution graph for LLVM program and proved memory safety. 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (4) 38.10/12.42 Obligation: 38.10/12.42 SE Graph 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (5) SymbolicExecutionGraphToSCCProof (SOUND) 38.10/12.42 Splitted symbolic execution graph to 3 SCCs. 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (6) 38.10/12.42 Complex Obligation (AND) 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (7) 38.10/12.42 Obligation: 38.10/12.42 SCC 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (8) SCC2IRS (SOUND) 38.10/12.42 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 38.10/12.42 Generated rules. Obtained 78 rulesP rules: 38.10/12.42 f_544(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4887, v4888, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_547(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4887, v4888, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_547(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4887, v4888, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_549(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4888, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_549(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4888, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_551(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: 1 + v4958 = v4882 && 0 <= v4958 38.10/12.42 f_551(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_553(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_553(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_555(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_555(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4889, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_557(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_557(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_559(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_559(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_561(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_561(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_563(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_563(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4958, v4961, v4890, v4891, v4892, v4893, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) -> f_464(v4875, v4876, v4877, v4878, v4879, v4880, v4881, v4882, 1, v4884, v4885, v4886, v4890, v4891, v4892, v4893, v4958, v4961, v4894, v4895, v4896, v4897, v4898, v4899, v4900, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_464(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2692, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2701, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_466(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2692, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2701, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_466(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2692, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2701, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_468(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2692, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2701, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_468(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2692, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2701, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_470(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_470(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_472(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 < v2701 && 2 <= v2692 && 2 <= v2697 38.10/12.42 f_472(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_475(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_475(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_478(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_478(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_481(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_481(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_484(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_484(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_487(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_487(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_490(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_490(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_493(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_493(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2695, v2696, v2697, v2698, v2699, v2700, v2692, v2702, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_496(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_496(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_499(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 < v2702 38.10/12.42 f_499(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_503(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_503(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_507(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_507(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_511(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_511(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v2696, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_515(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_515(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_519(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: v4048 != 0 38.10/12.42 f_515(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_520(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) :|: v4048 = 0 38.10/12.42 f_519(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_523(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_523(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_527(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_527(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) -> f_444(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, v4048, v2692, v2701, v2702, v2697, v2698, v2699, v2700, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_444(v2557, v2558, v2559, v2560, v2561, v2562, v2563, v2564, 1, v2566, v2567, v2568, v2569, v2570, v2571, v2572, v2573, v2574, v2575, v2576, v2577, v2578, v2579, v2580, v2581, v2582, 0, 3, 7, 2, 4, 8) -> f_544(v2557, v2558, v2559, v2560, v2561, v2562, v2563, v2564, 1, v2566, v2567, v2568, v2569, v2570, v2571, v2572, v2573, v2574, v2575, v2576, v2577, v2578, v2579, v2580, v2581, v2582, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_520(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) -> f_524(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_524(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) -> f_528(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_528(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2697, v2698, v2699, v2700, v2692, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) -> f_446(v2685, v2686, v2687, v2688, v2689, v2690, v2691, v2701, 1, v2694, v2702, 0, v2692, v2701, v2702, v2697, v2698, v2699, v2700, v2703, v2704, v2705, v2706, v2707, v2708, v2709, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_446(v2613, v2614, v2615, v2616, v2617, v2618, v2619, v2620, 1, v2622, v2623, 0, v2625, v2626, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, 3, 7, 2, 4, 8) -> f_546(v2613, v2614, v2615, v2616, v2617, v2618, v2619, v2620, 1, v2622, v2623, 0, v2625, v2626, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_546(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4946, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_548(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_548(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_550(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_550(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_552(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_552(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_554(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_554(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4947, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_556(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_556(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_558(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 1 + v4962 = v4940 && 0 <= v4962 38.10/12.42 f_558(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_560(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_560(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_562(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_562(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_564(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_564(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4948, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_565(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_565(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v4949, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_566(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 1 + v5027 = v4941 && 0 <= v5027 38.10/12.42 f_566(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_567(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_567(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_568(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_568(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_569(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_569(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_570(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_570(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_571(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_571(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4938, 1, v4940, v4941, 0, v4943, v4944, v4945, v4957, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_572(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_572(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_573(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 < v4957 38.10/12.42 f_573(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_575(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_575(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_577(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_577(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_580(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_580(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4940, v4941, 0, v4943, v4944, v4945, v4962, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_582(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_582(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_584(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 < v4962 && 2 <= v4940 38.10/12.42 f_584(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_586(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_586(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_588(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_588(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_591(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_591(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v4941, 0, v4943, v4944, v4945, v4940, v5027, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_593(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_593(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_595(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 < v5027 && 2 <= v4941 38.10/12.42 f_595(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_597(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_597(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_599(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_599(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) -> f_532(v4931, v4932, v4933, v4934, v4935, v4936, v4937, v4957, 1, v4962, v5027, 0, v4943, v4944, v4945, v4940, v4941, v4950, v4951, v4952, v4953, v4954, v4955, v4956, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_532(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_535(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_535(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_537(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_537(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_539(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: v4845 != 0 38.10/12.42 f_537(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_540(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: v4845 = 0 38.10/12.42 f_539(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_541(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 0, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_541(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 0, 3, 7, 2, 4, 8) -> f_543(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_543(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 0, 3, 7, 2, 4, 8) -> f_544(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, v4845, v4410, v4411, v4412, v4405, v4413, v4414, v4408, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 0, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_540(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_542(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: 0 = 0 38.10/12.42 f_542(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_545(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 f_545(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4413, v4414, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) -> f_546(v4398, v4399, v4400, v4401, v4402, v4403, v4404, v4405, 1, v4407, v4408, 0, v4410, v4411, v4412, v4405, v4413, v4414, v4408, v4415, v4416, v4417, v4418, v4419, v4420, v4421, 3, 7, 2, 4, 8) :|: TRUE 38.10/12.42 Combined rules. Obtained 6 rulesP rules: 38.10/12.42 f_544(v4875:0, v4876:0, v4877:0, v4878:0, v4879:0, v4880:0, v4881:0, 1 + v4958:0, 1, v4884:0, v4885:0, v4886:0, v4887:0, v4888:0, v4889:0, v4890:0, v4891:0, v4892:0, v4893:0, v4894:0, v4895:0, v4896:0, v4897:0, v4898:0, v4899:0, v4900:0, 0, 3, 7, 2, 4, 8) -> f_544(v4875:0, v4876:0, v4877:0, v4878:0, v4879:0, v4880:0, v4881:0, v4958:0, 1, v4884:0, v4961:0, v4048:0, 1 + v4958:0, v4958:0, v4961:0, v4890:0, v4891:0, v4892:0, v4893:0, v4894:0, v4895:0, v4896:0, v4897:0, v4898:0, v4899:0, v4900:0, 0, 3, 7, 2, 4, 8) :|: v4958:0 > 0 && v4890:0 > 1 && v4048:0 < 0 && v4961:0 > 0 38.10/12.42 f_544(v4875:0, v4876:0, v4877:0, v4878:0, v4879:0, v4880:0, v4881:0, 1 + v4958:0, 1, v4884:0, v4885:0, v4886:0, v4887:0, v4888:0, v4889:0, v4890:0, v4891:0, v4892:0, v4893:0, v4894:0, v4895:0, v4896:0, v4897:0, v4898:0, v4899:0, v4900:0, 0, 3, 7, 2, 4, 8) -> f_544(v4875:0, v4876:0, v4877:0, v4878:0, v4879:0, v4880:0, v4881:0, v4958:0, 1, v4884:0, v4961:0, v4048:0, 1 + v4958:0, v4958:0, v4961:0, v4890:0, v4891:0, v4892:0, v4893:0, v4894:0, v4895:0, v4896:0, v4897:0, v4898:0, v4899:0, v4900:0, 0, 3, 7, 2, 4, 8) :|: v4958:0 > 0 && v4890:0 > 1 && v4048:0 > 0 && v4961:0 > 0 38.10/12.42 f_544(v4875:0, v4876:0, v4877:0, v4878:0, v4879:0, v4880:0, v4881:0, 1 + v4958:0, 1, 1 + v4962:0, v4885:0, v4886:0, v4887:0, v4888:0, v4889:0, v4890:0, v4891:0, v4892:0, v4893:0, v4894:0, v4895:0, v4896:0, v4897:0, v4898:0, v4899:0, v4900:0, 0, 3, 7, 2, 4, 8) -> f_537(v4875:0, v4876:0, v4877:0, v4878:0, v4879:0, v4880:0, v4881:0, v4957:0, 1, v4962:0, v5027:0, v4845:0, 0, 1 + v4958:0, v4958:0, 1 + v5027:0, 1 + v4962:0, 1 + v5027:0, v4894:0, v4895:0, v4896:0, v4897:0, v4898:0, v4899:0, v4900:0, 3, 7, 2, 4, 8) :|: v4958:0 > 0 && v4962:0 > 0 && v5027:0 > 0 && v4890:0 > 1 && v4957:0 > 0 38.10/12.42 f_537(v4398:0, v4399:0, v4400:0, v4401:0, v4402:0, v4403:0, v4404:0, v4405:0, 1, v4407:0, v4408:0, v4845:0, 0, v4410:0, v4411:0, v4412:0, v4413:0, v4414:0, v4415:0, v4416:0, v4417:0, v4418:0, v4419:0, v4420:0, v4421:0, 3, 7, 2, 4, 8) -> f_544(v4398:0, v4399:0, v4400:0, v4401:0, v4402:0, v4403:0, v4404:0, v4405:0, 1, v4407:0, v4408:0, v4845:0, v4410:0, v4411:0, v4412:0, v4405:0, v4413:0, v4414:0, v4408:0, v4415:0, v4416:0, v4417:0, v4418:0, v4419:0, v4420:0, v4421:0, 0, 3, 7, 2, 4, 8) :|: v4845:0 < 0 38.10/12.42 f_537(v4398:0, v4399:0, v4400:0, v4401:0, v4402:0, v4403:0, v4404:0, v4405:0, 1, v4407:0, v4408:0, v4845:0, 0, v4410:0, v4411:0, v4412:0, v4413:0, v4414:0, v4415:0, v4416:0, v4417:0, v4418:0, v4419:0, v4420:0, v4421:0, 3, 7, 2, 4, 8) -> f_544(v4398:0, v4399:0, v4400:0, v4401:0, v4402:0, v4403:0, v4404:0, v4405:0, 1, v4407:0, v4408:0, v4845:0, v4410:0, v4411:0, v4412:0, v4405:0, v4413:0, v4414:0, v4408:0, v4415:0, v4416:0, v4417:0, v4418:0, v4419:0, v4420:0, v4421:0, 0, 3, 7, 2, 4, 8) :|: v4845:0 > 0 38.10/12.42 f_537(v4398:0, v4399:0, v4400:0, v4401:0, v4402:0, v4403:0, v4404:0, v4405:0, 1, 1 + v4962:0, 1 + v5027:0, 0, 0, v4410:0, v4411:0, v4412:0, v4413:0, v4414:0, v4415:0, v4416:0, v4417:0, v4418:0, v4419:0, v4420:0, v4421:0, 3, 7, 2, 4, 8) -> f_537(v4398:0, v4399:0, v4400:0, v4401:0, v4402:0, v4403:0, v4404:0, v4957:0, 1, v4962:0, v5027:0, v4845:1, 0, v4410:0, v4411:0, v4412:0, 1 + v4962:0, 1 + v5027:0, v4415:0, v4416:0, v4417:0, v4418:0, v4419:0, v4420:0, v4421:0, 3, 7, 2, 4, 8) :|: v4962:0 > 0 && v5027:0 > 0 && v4957:0 > 0 38.10/12.42 Filtered unneeded arguments: 38.10/12.42 f_544(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32) -> f_544(x8, x10, x16) 38.10/12.42 f_537(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) -> f_537(x8, x10, x11, x12) 38.10/12.42 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 38.10/12.42 f_544(sum~cons_1~v4958:0, v4884:0, v4890:0) -> f_544(v4958:0, v4884:0, v4890:0) :|: v4958:0 > 0 && v4890:0 > 1 && sum~cons_1~v4958:0 = 1 + v4958:0 38.10/12.42 f_544(sum~cons_1~v4958:0, sum~cons_1~v4962:0, v4890:0) -> f_537(v4957:0, v4962:0, v5027:0, v4845:0) :|: v4962:0 > 0 && v4958:0 > 0 && v5027:0 > 0 && v4957:0 > 0 && v4890:0 > 1 && sum~cons_1~v4958:0 = 1 + v4958:0 && sum~cons_1~v4962:0 = 1 + v4962:0 38.10/12.42 f_537(v4405:0, v4407:0, v4408:0, v4845:0) -> f_544(v4405:0, v4407:0, v4405:0) :|: v4845:0 < 0 38.10/12.42 f_537(v4405:0, v4407:0, v4408:0, v4845:0) -> f_544(v4405:0, v4407:0, v4405:0) :|: v4845:0 > 0 38.10/12.42 f_537(v4405:0, sum~cons_1~v4962:0, sum~cons_1~v5027:0, cons_0) -> f_537(v4957:0, v4962:0, v5027:0, v4845:1) :|: v5027:0 > 0 && v4957:0 > 0 && v4962:0 > 0 && sum~cons_1~v4962:0 = 1 + v4962:0 && sum~cons_1~v5027:0 = 1 + v5027:0 && cons_0 = 0 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (9) 38.10/12.42 Obligation: 38.10/12.42 Rules: 38.10/12.42 f_544(sum~cons_1~v4958:0, v4884:0, v4890:0) -> f_544(v4958:0, v4884:0, v4890:0) :|: v4958:0 > 0 && v4890:0 > 1 && sum~cons_1~v4958:0 = 1 + v4958:0 38.10/12.42 f_544(x, x1, x2) -> f_537(x3, x4, x5, x6) :|: x4 > 0 && x7 > 0 && x5 > 0 && x3 > 0 && x2 > 1 && x = 1 + x7 && x1 = 1 + x4 38.10/12.42 f_537(v4405:0, v4407:0, v4408:0, v4845:0) -> f_544(v4405:0, v4407:0, v4405:0) :|: v4845:0 < 0 38.10/12.42 f_537(x8, x9, x10, x11) -> f_544(x8, x9, x8) :|: x11 > 0 38.10/12.42 f_537(x12, x13, x14, x15) -> f_537(x16, x17, x18, x19) :|: x18 > 0 && x16 > 0 && x17 > 0 && x13 = 1 + x17 && x14 = 1 + x18 && x15 = 0 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (10) IRS2T2 (EQUIVALENT) 38.10/12.42 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 38.10/12.42 38.10/12.42 (f_544_4,1) 38.10/12.42 (f_537_4,2) 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (11) 38.10/12.42 Obligation: 38.10/12.42 START: 0; 38.10/12.42 38.10/12.42 FROM: 0; 38.10/12.42 TO: 1; 38.10/12.42 38.10/12.42 FROM: 0; 38.10/12.42 TO: 2; 38.10/12.42 38.10/12.42 FROM: 1; 38.10/12.42 oldX0 := x0; 38.10/12.42 oldX1 := x1; 38.10/12.42 oldX2 := x2; 38.10/12.42 oldX3 := x3; 38.10/12.42 oldX4 := oldX0 - 1; 38.10/12.42 oldX5 := nondet(); 38.10/12.42 assume(oldX4 > 0 && oldX2 > 1 && oldX0 = 1 + oldX4); 38.10/12.42 x0 := oldX0 - 1; 38.10/12.42 x1 := oldX1; 38.10/12.42 x2 := oldX2; 38.10/12.42 x3 := oldX5; 38.10/12.42 TO: 1; 38.10/12.42 38.10/12.42 FROM: 1; 38.10/12.42 oldX0 := x0; 38.10/12.42 oldX1 := x1; 38.10/12.42 oldX2 := x2; 38.10/12.42 oldX3 := x3; 38.10/12.42 oldX5 := oldX1 - 1; 38.10/12.42 oldX8 := oldX0 - 1; 38.10/12.42 oldX4 := nondet(); 38.10/12.42 oldX6 := nondet(); 38.10/12.42 oldX7 := nondet(); 38.10/12.42 assume(oldX5 > 0 && oldX8 > 0 && oldX6 > 0 && oldX4 > 0 && oldX2 > 1 && oldX0 = 1 + oldX8 && oldX1 = 1 + oldX5); 38.10/12.42 x0 := oldX4; 38.10/12.42 x1 := oldX1 - 1; 38.10/12.42 x2 := oldX6; 38.10/12.42 x3 := oldX7; 38.10/12.42 TO: 2; 38.10/12.42 38.10/12.42 FROM: 2; 38.10/12.42 oldX0 := x0; 38.10/12.42 oldX1 := x1; 38.10/12.42 oldX2 := x2; 38.10/12.42 oldX3 := x3; 38.10/12.42 oldX4 := nondet(); 38.10/12.42 assume(oldX3 < 0); 38.10/12.42 x0 := oldX0; 38.10/12.42 x1 := oldX1; 38.10/12.42 x2 := oldX0; 38.10/12.42 x3 := oldX4; 38.10/12.42 TO: 1; 38.10/12.42 38.10/12.42 FROM: 2; 38.10/12.42 oldX0 := x0; 38.10/12.42 oldX1 := x1; 38.10/12.42 oldX2 := x2; 38.10/12.42 oldX3 := x3; 38.10/12.42 oldX4 := nondet(); 38.10/12.42 assume(oldX3 > 0); 38.10/12.42 x0 := oldX0; 38.10/12.42 x1 := oldX1; 38.10/12.42 x2 := oldX0; 38.10/12.42 x3 := oldX4; 38.10/12.42 TO: 1; 38.10/12.42 38.10/12.42 FROM: 2; 38.10/12.42 oldX0 := x0; 38.10/12.42 oldX1 := x1; 38.10/12.42 oldX2 := x2; 38.10/12.42 oldX3 := x3; 38.10/12.42 oldX5 := oldX1 - 1; 38.10/12.42 oldX6 := oldX2 - 1; 38.10/12.42 oldX4 := nondet(); 38.10/12.42 oldX7 := nondet(); 38.10/12.42 assume(oldX6 > 0 && oldX4 > 0 && oldX5 > 0 && oldX1 = 1 + oldX5 && oldX2 = 1 + oldX6 && oldX3 = 0); 38.10/12.42 x0 := oldX4; 38.10/12.42 x1 := oldX1 - 1; 38.10/12.42 x2 := oldX2 - 1; 38.10/12.42 x3 := oldX7; 38.10/12.42 TO: 2; 38.10/12.42 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (12) T2 (EQUIVALENT) 38.10/12.42 Initially, performed program simplifications using lexicographic rank functions: 38.10/12.42 * Removed transitions 2, 5, 6, 14, 17, 18, 19 using the following rank functions: 38.10/12.42 - Rank function 1: 38.10/12.42 RF for loc. 6: -1+3*x1 38.10/12.42 RF for loc. 7: 1+3*x1 38.10/12.42 RF for loc. 8: -1+3*x1 38.10/12.42 RF for loc. 12: 3*x1 38.10/12.42 Bound for (chained) transitions 6: 5 38.10/12.42 Bound for (chained) transitions 19: 6 38.10/12.42 - Rank function 2: 38.10/12.42 RF for loc. 6: -1+2*x0-2*x2 38.10/12.42 RF for loc. 7: 1 38.10/12.42 RF for loc. 8: -1+2*x0-2*x2 38.10/12.42 RF for loc. 12: 0 38.10/12.42 Bound for (chained) transitions 14: 1 38.10/12.42 Bound for (chained) transitions 18: 0 38.10/12.42 - Rank function 3: 38.10/12.42 RF for loc. 6: 1+2*x0-2*x2 38.10/12.42 RF for loc. 8: 2*x0-2*x2 38.10/12.42 RF for loc. 12: -2*x3 38.10/12.42 Bound for (chained) transitions 17: 2 38.10/12.42 - Rank function 4: 38.10/12.42 RF for loc. 6: 1+2*x0 38.10/12.42 RF for loc. 8: 2*x0 38.10/12.42 Bound for (chained) transitions 5: 4 38.10/12.42 - Rank function 5: 38.10/12.42 RF for loc. 6: 0 38.10/12.42 RF for loc. 8: -1 38.10/12.42 Bound for (chained) transitions 2: 0 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (13) 38.10/12.42 YES 38.10/12.42 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (14) 38.10/12.42 Obligation: 38.10/12.42 SCC 38.10/12.42 ---------------------------------------- 38.10/12.42 38.10/12.42 (15) SCC2IRS (SOUND) 38.10/12.42 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 38.10/12.42 Generated rules. Obtained 36 rulesP rules: 38.10/12.42 f_263(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, 0, v62, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_266(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, 0, v62, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_266(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, 0, v62, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_269(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_269(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_271(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 < v62 38.10/12.43 f_271(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_274(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_274(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_277(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_277(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_280(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_280(v1, v3, v5, v7, v9, v12, v15, v62, 1, v20, v22, 0, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_284(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_284(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_288(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 < v67 && 2 <= v20 38.10/12.43 f_288(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_292(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_292(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_296(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_296(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_300(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_300(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v22, 0, v20, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_304(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_304(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_308(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 < v70 && 2 <= v22 38.10/12.43 f_308(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_312(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_312(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_316(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_316(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_320(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_320(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_324(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, v700, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_324(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, v700, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_329(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: v700 = 0 38.10/12.43 f_329(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_333(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_333(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_337(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_337(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_341(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_341(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_345(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_345(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_349(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_349(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_353(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_353(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v20, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_356(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_356(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_359(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 1 + v780 = v67 && 0 <= v780 38.10/12.43 f_359(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_362(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_362(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_365(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_365(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_368(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_368(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v22, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8, 2) -> f_371(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_371(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_374(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 1 + v914 = v70 && 0 <= v914 38.10/12.43 f_374(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_378(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_378(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_383(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_383(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_388(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_388(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_260(v1, v3, v5, v7, v9, v12, v15, v62, 1, v67, v70, 0, v728, v780, v914, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_260(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, 0, v62, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) -> f_263(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, 0, v62, v67, v70, v2, v4, v6, v8, v10, v13, v16, 3, 7, 4, 8) :|: TRUE 38.10/12.43 Combined rules. Obtained 1 rulesP rules: 38.10/12.43 f_263(v1:0, v3:0, v5:0, v7:0, v9:0, v12:0, v15:0, v18:0, 1, v20:0, v22:0, 0, v62:0, 1 + v780:0, 1 + v914:0, v2:0, v4:0, v6:0, v8:0, v10:0, v13:0, v16:0, 3, 7, 4, 8) -> f_263(v1:0, v3:0, v5:0, v7:0, v9:0, v12:0, v15:0, v62:0, 1, 1 + v780:0, 1 + v914:0, 0, v728:0, v780:0, v914:0, v2:0, v4:0, v6:0, v8:0, v10:0, v13:0, v16:0, 3, 7, 4, 8) :|: v62:0 > 0 && v20:0 > 1 && v780:0 > -1 && v22:0 > 1 && v914:0 > -1 38.10/12.43 Filtered unneeded arguments: 38.10/12.43 f_263(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) -> f_263(x10, x11, x13, x14, x15) 38.10/12.43 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 38.10/12.43 f_263(v20:0, v22:0, v62:0, sum~cons_1~v780:0, sum~cons_1~v914:0) -> f_263(1 + v780:0, 1 + v914:0, v728:0, v780:0, v914:0) :|: v20:0 > 1 && v62:0 > 0 && v780:0 > -1 && v914:0 > -1 && v22:0 > 1 && sum~cons_1~v780:0 = 1 + v780:0 && sum~cons_1~v914:0 = 1 + v914:0 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (16) 38.10/12.43 Obligation: 38.10/12.43 Rules: 38.10/12.43 f_263(v20:0, v22:0, v62:0, sum~cons_1~v780:0, sum~cons_1~v914:0) -> f_263(1 + v780:0, 1 + v914:0, v728:0, v780:0, v914:0) :|: v20:0 > 1 && v62:0 > 0 && v780:0 > -1 && v914:0 > -1 && v22:0 > 1 && sum~cons_1~v780:0 = 1 + v780:0 && sum~cons_1~v914:0 = 1 + v914:0 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (17) IRS2T2 (EQUIVALENT) 38.10/12.43 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 38.10/12.43 38.10/12.43 (f_263_5,1) 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (18) 38.10/12.43 Obligation: 38.10/12.43 START: 0; 38.10/12.43 38.10/12.43 FROM: 0; 38.10/12.43 TO: 1; 38.10/12.43 38.10/12.43 FROM: 1; 38.10/12.43 oldX0 := x0; 38.10/12.43 oldX1 := x1; 38.10/12.43 oldX2 := x2; 38.10/12.43 oldX3 := x3; 38.10/12.43 oldX4 := x4; 38.10/12.43 oldX5 := oldX3 - 1; 38.10/12.43 oldX6 := oldX4 - 1; 38.10/12.43 oldX7 := nondet(); 38.10/12.43 assume(oldX0 > 1 && oldX2 > 0 && oldX5 > -1 && oldX6 > -1 && oldX1 > 1 && oldX3 = 1 + oldX5 && oldX4 = 1 + oldX6); 38.10/12.43 x0 := 1 + oldX5; 38.10/12.43 x1 := 1 + oldX6; 38.10/12.43 x2 := oldX7; 38.10/12.43 x3 := oldX3 - 1; 38.10/12.43 x4 := oldX4 - 1; 38.10/12.43 TO: 1; 38.10/12.43 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (19) T2 (EQUIVALENT) 38.10/12.43 Initially, performed program simplifications using lexicographic rank functions: 38.10/12.43 * Removed transitions 1, 3, 4 using the following rank functions: 38.10/12.43 - Rank function 1: 38.10/12.43 RF for loc. 5: 1+x3+x4 38.10/12.43 RF for loc. 6: x3+x4 38.10/12.43 Bound for (chained) transitions 4: 2 38.10/12.43 - Rank function 2: 38.10/12.43 RF for loc. 5: 2*x4 38.10/12.43 RF for loc. 6: -1+2*x4 38.10/12.43 Bound for (chained) transitions 3: 1 38.10/12.43 - Rank function 3: 38.10/12.43 RF for loc. 5: 0 38.10/12.43 RF for loc. 6: -1 38.10/12.43 Bound for (chained) transitions 1: 0 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (20) 38.10/12.43 YES 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (21) 38.10/12.43 Obligation: 38.10/12.43 SCC 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (22) SCC2IRS (SOUND) 38.10/12.43 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 38.10/12.43 Generated rules. Obtained 30 rulesP rules: 38.10/12.43 f_251(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, v61, v63, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_253(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_253(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_255(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 < v63 && 2 <= v18 38.10/12.43 f_255(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_258(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_258(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_261(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_261(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_264(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_264(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_267(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_267(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_270(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_270(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_273(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_273(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_276(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_276(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v22, v61, v18, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_279(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_279(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_282(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 < v66 38.10/12.43 f_282(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_286(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_286(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_290(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_290(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_294(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_294(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v61, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_298(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_298(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_302(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: v411 != 0 38.10/12.43 f_302(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_306(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_306(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_310(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: TRUE 38.10/12.43 f_310(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_314(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) :|: 0 = 0 38.10/12.43 f_314(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v18, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8, 2) -> f_318(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_318(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_322(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: 1 + v698 = v63 && 0 <= v698 38.10/12.43 f_322(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_326(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_326(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_330(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_330(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_334(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_334(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_338(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 f_338(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_342(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_342(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_346(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_346(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_350(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_350(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_249(v1, v3, v5, v7, v9, v12, v15, v63, 1, v20, v66, v411, v698, v702, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: TRUE 38.10/12.43 f_249(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, v61, v63, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) -> f_251(v1, v3, v5, v7, v9, v12, v15, v18, 1, v20, v22, v61, v63, v66, v2, v4, v6, v8, v10, v13, v16, 0, 3, 7, 4, 8) :|: 0 = 0 38.10/12.43 Combined rules. Obtained 2 rulesP rules: 38.10/12.43 f_251(v1:0, v3:0, v5:0, v7:0, v9:0, v12:0, v15:0, v18:0, 1, v20:0, v22:0, v61:0, 1 + v698:0, v66:0, v2:0, v4:0, v6:0, v8:0, v10:0, v13:0, v16:0, 0, 3, 7, 4, 8) -> f_251(v1:0, v3:0, v5:0, v7:0, v9:0, v12:0, v15:0, 1 + v698:0, 1, v20:0, v66:0, v411:0, v698:0, v702:0, v2:0, v4:0, v6:0, v8:0, v10:0, v13:0, v16:0, 0, 3, 7, 4, 8) :|: v18:0 > 1 && v698:0 > -1 && v66:0 > 0 && v411:0 < 0 38.10/12.43 f_251(v1:0, v3:0, v5:0, v7:0, v9:0, v12:0, v15:0, v18:0, 1, v20:0, v22:0, v61:0, 1 + v698:0, v66:0, v2:0, v4:0, v6:0, v8:0, v10:0, v13:0, v16:0, 0, 3, 7, 4, 8) -> f_251(v1:0, v3:0, v5:0, v7:0, v9:0, v12:0, v15:0, 1 + v698:0, 1, v20:0, v66:0, v411:0, v698:0, v702:0, v2:0, v4:0, v6:0, v8:0, v10:0, v13:0, v16:0, 0, 3, 7, 4, 8) :|: v18:0 > 1 && v698:0 > -1 && v66:0 > 0 && v411:0 > 0 38.10/12.43 Filtered unneeded arguments: 38.10/12.43 f_251(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) -> f_251(x8, x13, x14) 38.10/12.43 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 38.10/12.43 f_251(v18:0, sum~cons_1~v698:0, v66:0) -> f_251(1 + v698:0, v698:0, v702:0) :|: v698:0 > -1 && v66:0 > 0 && v18:0 > 1 && sum~cons_1~v698:0 = 1 + v698:0 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (23) 38.10/12.43 Obligation: 38.10/12.43 Rules: 38.10/12.43 f_251(v18:0, sum~cons_1~v698:0, v66:0) -> f_251(1 + v698:0, v698:0, v702:0) :|: v698:0 > -1 && v66:0 > 0 && v18:0 > 1 && sum~cons_1~v698:0 = 1 + v698:0 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (24) IntTRSCompressionProof (EQUIVALENT) 38.10/12.43 Compressed rules. 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (25) 38.10/12.43 Obligation: 38.10/12.43 Rules: 38.10/12.43 f_251(v18:0:0, sum~cons_1~v698:0:0, v66:0:0) -> f_251(1 + v698:0:0, v698:0:0, v702:0:0) :|: v698:0:0 > -1 && v66:0:0 > 0 && v18:0:0 > 1 && sum~cons_1~v698:0:0 = 1 + v698:0:0 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (26) RankingReductionPairProof (EQUIVALENT) 38.10/12.43 Interpretation: 38.10/12.43 [ f_251 ] = f_251_2 38.10/12.43 38.10/12.43 The following rules are decreasing: 38.10/12.43 f_251(v18:0:0, sum~cons_1~v698:0:0, v66:0:0) -> f_251(1 + v698:0:0, v698:0:0, v702:0:0) :|: v698:0:0 > -1 && v66:0:0 > 0 && v18:0:0 > 1 && sum~cons_1~v698:0:0 = 1 + v698:0:0 38.10/12.43 38.10/12.43 The following rules are bounded: 38.10/12.43 f_251(v18:0:0, sum~cons_1~v698:0:0, v66:0:0) -> f_251(1 + v698:0:0, v698:0:0, v702:0:0) :|: v698:0:0 > -1 && v66:0:0 > 0 && v18:0:0 > 1 && sum~cons_1~v698:0:0 = 1 + v698:0:0 38.10/12.43 38.10/12.43 38.10/12.43 ---------------------------------------- 38.10/12.43 38.10/12.43 (27) 38.10/12.43 YES 38.44/12.46 EOF