48.85/15.80 YES 48.85/15.82 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 48.85/15.82 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 48.85/15.82 48.85/15.82 48.85/15.82 Termination of the given C Problem could be proven: 48.85/15.82 48.85/15.82 (0) C Problem 48.85/15.82 (1) CToLLVMProof [EQUIVALENT, 172 ms] 48.85/15.82 (2) LLVM problem 48.85/15.82 (3) LLVMToTerminationGraphProof [EQUIVALENT, 10.2 s] 48.85/15.82 (4) LLVM Symbolic Execution Graph 48.85/15.82 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 48.85/15.82 (6) AND 48.85/15.82 (7) LLVM Symbolic Execution SCC 48.85/15.82 (8) SCC2IRS [SOUND, 169 ms] 48.85/15.82 (9) IntTRS 48.85/15.82 (10) IRS2T2 [EQUIVALENT, 0 ms] 48.85/15.82 (11) T2IntSys 48.85/15.82 (12) T2 [EQUIVALENT, 1203 ms] 48.85/15.82 (13) YES 48.85/15.82 (14) LLVM Symbolic Execution SCC 48.85/15.82 (15) SCC2IRS [SOUND, 130 ms] 48.85/15.82 (16) IntTRS 48.85/15.82 (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] 48.85/15.82 (18) IntTRS 48.85/15.82 (19) RankingReductionPairProof [EQUIVALENT, 23 ms] 48.85/15.82 (20) YES 48.85/15.82 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (0) 48.85/15.82 Obligation: 48.85/15.82 c file /export/starexec/sandbox/benchmark/theBenchmark.c 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (1) CToLLVMProof (EQUIVALENT) 48.85/15.82 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (2) 48.85/15.82 Obligation: 48.85/15.82 LLVM Problem 48.85/15.82 48.85/15.82 Aliases: 48.85/15.82 48.85/15.82 Data layout: 48.85/15.82 48.85/15.82 "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" 48.85/15.82 48.85/15.82 Machine: 48.85/15.82 48.85/15.82 "x86_64-pc-linux-gnu" 48.85/15.82 48.85/15.82 Type definitions: 48.85/15.82 48.85/15.82 Global variables: 48.85/15.82 48.85/15.82 Function declarations and definitions: 48.85/15.82 48.85/15.82 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 48.85/15.82 *BasicFunctionTypename: "test_fun" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (x i32, y i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 48.85/15.82 0: 48.85/15.82 %1 = alloca i32, align 4 48.85/15.82 %2 = alloca i32, align 4 48.85/15.82 %x_ref = alloca *i32, align 8 48.85/15.82 %y_ref = alloca *i32, align 8 48.85/15.82 %c = alloca *i32, align 8 48.85/15.82 store %x, %1 48.85/15.82 store %y, %2 48.85/15.82 %3 = alloca i8, numElementsLit: 4 48.85/15.82 %4 = bitcast *i8 %3 to *i32 48.85/15.82 store %4, %x_ref 48.85/15.82 %5 = alloca i8, numElementsLit: 4 48.85/15.82 %6 = bitcast *i8 %5 to *i32 48.85/15.82 store %6, %y_ref 48.85/15.82 %7 = alloca i8, numElementsLit: 4 48.85/15.82 %8 = bitcast *i8 %7 to *i32 48.85/15.82 store %8, %c 48.85/15.82 %9 = load %1 48.85/15.82 %10 = load %x_ref 48.85/15.82 store %9, %10 48.85/15.82 %11 = load %2 48.85/15.82 %12 = load %y_ref 48.85/15.82 store %11, %12 48.85/15.82 %13 = load %c 48.85/15.82 store 0, %13 48.85/15.82 br %14 48.85/15.82 14: 48.85/15.82 %15 = load %x_ref 48.85/15.82 %16 = load %15 48.85/15.82 %17 = icmp sge %16 0 48.85/15.82 br %17, %18, %44 48.85/15.82 18: 48.85/15.82 %19 = load %x_ref 48.85/15.82 %20 = load %19 48.85/15.82 %21 = add %20 1 48.85/15.82 %22 = load %x_ref 48.85/15.82 store %21, %22 48.85/15.82 %23 = load %y_ref 48.85/15.82 store 1, %23 48.85/15.82 br %24 48.85/15.82 24: 48.85/15.82 %25 = load %x_ref 48.85/15.82 %26 = load %25 48.85/15.82 %27 = load %y_ref 48.85/15.82 %28 = load %27 48.85/15.82 %29 = icmp sgt %26 %28 48.85/15.82 br %29, %30, %39 48.85/15.82 30: 48.85/15.82 %31 = load %y_ref 48.85/15.82 %32 = load %31 48.85/15.82 %33 = add %32 1 48.85/15.82 %34 = load %y_ref 48.85/15.82 store %33, %34 48.85/15.82 %35 = load %c 48.85/15.82 %36 = load %35 48.85/15.82 %37 = add %36 1 48.85/15.82 %38 = load %c 48.85/15.82 store %37, %38 48.85/15.82 br %24 48.85/15.82 39: 48.85/15.82 %40 = load %x_ref 48.85/15.82 %41 = load %40 48.85/15.82 %42 = sub %41 2 48.85/15.82 %43 = load %x_ref 48.85/15.82 store %42, %43 48.85/15.82 br %14 48.85/15.82 44: 48.85/15.82 %45 = load %c 48.85/15.82 %46 = load %45 48.85/15.82 ret %46 48.85/15.82 48.85/15.82 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 48.85/15.82 0: 48.85/15.82 %1 = alloca i32, align 4 48.85/15.82 store 0, %1 48.85/15.82 %2 = call i32 @__VERIFIER_nondet_int() 48.85/15.82 %3 = call i32 @__VERIFIER_nondet_int() 48.85/15.82 %4 = call i32 @test_fun(i32 %2, i32 %3) 48.85/15.82 ret %4 48.85/15.82 48.85/15.82 48.85/15.82 Analyze Termination of all function calls matching the pattern: 48.85/15.82 main() 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (3) LLVMToTerminationGraphProof (EQUIVALENT) 48.85/15.82 Constructed symbolic execution graph for LLVM program and proved memory safety. 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (4) 48.85/15.82 Obligation: 48.85/15.82 SE Graph 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (5) SymbolicExecutionGraphToSCCProof (SOUND) 48.85/15.82 Splitted symbolic execution graph to 2 SCCs. 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (6) 48.85/15.82 Complex Obligation (AND) 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (7) 48.85/15.82 Obligation: 48.85/15.82 SCC 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (8) SCC2IRS (SOUND) 48.85/15.82 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 48.85/15.82 Generated rules. Obtained 74 rulesP rules: 48.85/15.82 f_772(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1086, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_773(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_773(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_774(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 2 + v1097 = v1080 && 0 <= 1 + v1097 48.85/15.82 f_774(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_775(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_775(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_776(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_776(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_777(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_777(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_778(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_778(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1097, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_779(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_779(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_780(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 <= v1097 && 2 <= v1080 && 1 <= v1078 && 2 <= v1068 && 1 <= v1084 && 2 <= v1085 48.85/15.82 f_780(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_782(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_782(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_784(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_784(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_786(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_786(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1078, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_788(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_788(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_790(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: v1144 = 1 + v1097 && 1 <= v1144 48.85/15.82 f_790(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_792(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_792(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_793(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_793(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_794(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_794(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_795(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_795(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_796(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_796(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_797(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1097, 1, v1144, v1080, 0, v1082, v1083, v1084, v1085, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_797(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_798(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_798(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_799(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_799(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_800(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_800(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1189, 0, v1191, v1192, v1193, v1194, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_801(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, 0, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_801(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, 0, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_802(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, 0, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) :|: 1 < v1188 && 1 <= v1186 && 3 <= v1189 && 3 <= v1192 && 2 <= v1191 && 2 <= v1176 48.85/15.82 f_801(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, 0, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_803(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 4, 8) :|: v1188 <= 1 && v1186 = 0 && v1188 = 1 && 0 = 0 && v1189 = 2 48.85/15.82 f_802(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, 0, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) -> f_804(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_804(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 0, 3, 7, 2, 4, 8) -> f_806(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_806(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 0, 3, 7, 2, 4, 8) -> f_829(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, v1186, 1, v1188, 1, v1191, v1192, v1193, v1194, v1189, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_829(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1372, v1373, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_831(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1372, v1373, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_831(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1372, v1373, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_832(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1373, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_832(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1373, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_833(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: v1428 = 1 + v1371 && 2 <= v1428 48.85/15.82 f_833(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_834(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_834(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_835(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_835(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_836(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_836(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1374, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_837(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_837(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_838(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: v1430 = 1 + v1375 && 2 <= v1430 48.85/15.82 f_838(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_839(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_839(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_840(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_840(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_841(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_841(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) -> f_842(v1358, v1359, v1360, v1361, v1362, v1363, v1364, v1365, v1366, v1367, v1368, 1, v1370, v1371, v1428, v1375, v1430, v1376, v1377, v1378, v1379, v1380, v1381, v1382, v1383, v1384, v1385, v1386, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_842(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_843(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_843(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_844(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_844(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_845(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_845(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_846(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_846(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_847(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: v1478 < v1476 && 3 <= v1476 && 2 <= v1474 && 4 <= v1481 && 3 <= v1464 48.85/15.82 f_846(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_848(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: v1476 <= v1478 && v1476 = v1478 && v1474 = v1477 48.85/15.82 f_847(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_849(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_849(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_851(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_851(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_829(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1474, 1, v1476, v1478, v1477, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_848(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 0, 3, 7, 2, 4, 8) -> f_850(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_850(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_852(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_852(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_853(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_853(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1481, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_854(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_854(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_855(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 2 + v1580 = v1478 && 0 <= v1580 48.85/15.82 f_855(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_856(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_856(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_857(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_857(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_858(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_858(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_859(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_859(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1477, 1, v1478, 0, v1479, v1480, v1580, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_860(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_860(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_861(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_861(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_862(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_862(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_863(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_863(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_864(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1478, 0, v1477, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_864(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1478, 0, v1477, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_865(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: v1477 = 1 + v1580 48.85/15.82 f_865(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_866(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_866(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_867(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_867(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_868(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_868(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_869(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_869(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_870(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_870(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) -> f_797(v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, v1473, v1580, 1, v1477, v1478, 0, v1477, v1478, v1479, v1480, v1482, v1483, v1484, v1485, v1486, v1487, v1488, v1489, v1490, v1491, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_803(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 4, 8) -> f_805(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 4, 8) :|: 0 = 0 48.85/15.82 f_805(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 4, 8) -> f_807(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 4, 8) :|: TRUE 48.85/15.82 f_807(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 4, 8) -> f_771(v1176, v1177, v1178, v1179, v1180, v1181, v1182, v1183, v1184, v1185, 0, 1, 1, 0, v1191, v1192, v1193, v1194, 2, v1195, v1196, v1197, v1198, v1199, v1200, v1201, v1202, v1203, v1204, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_771(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1086, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) -> f_772(v1068, v1069, v1070, v1071, v1072, v1073, v1074, v1075, v1076, v1077, v1078, 1, v1080, 0, v1082, v1083, v1084, v1085, v1086, v1087, v1088, v1089, v1090, v1091, v1092, v1093, v1094, v1095, v1096, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 Combined rules. Obtained 3 rulesP rules: 48.85/15.82 f_846(v1464:0, v1465:0, v1466:0, v1467:0, v1468:0, v1469:0, v1470:0, v1471:0, v1472:0, v1473:0, 1 + v1580:0, 1, 2 + v1580:0, 2 + v1580:0, 1 + v1580:0, v1479:0, v1480:0, v1481:0, v1482:0, v1483:0, v1484:0, v1485:0, v1486:0, v1487:0, v1488:0, v1489:0, v1490:0, v1491:0, 0, 3, 7, 2, 4, 8) -> f_801(v1464:0, v1465:0, v1466:0, v1467:0, v1468:0, v1469:0, v1470:0, v1471:0, v1472:0, v1473:0, v1580:0, 1, 1 + v1580:0, 0, 1 + v1580:0, 2 + v1580:0, v1479:0, v1480:0, 2 + v1580:0, v1482:0, v1483:0, v1484:0, v1485:0, v1486:0, v1487:0, v1488:0, v1489:0, v1490:0, v1491:0, 3, 7, 2, 4, 8) :|: v1580:0 > -1 48.85/15.82 f_801(v1176:0, v1177:0, v1178:0, v1179:0, v1180:0, v1181:0, v1182:0, v1183:0, v1184:0, v1185:0, v1186:0, 1, v1188:0, 0, v1191:0, v1192:0, v1193:0, v1194:0, v1189:0, v1195:0, v1196:0, v1197:0, v1198:0, v1199:0, v1200:0, v1201:0, v1202:0, v1203:0, v1204:0, 3, 7, 2, 4, 8) -> f_846(v1176:0, v1177:0, v1178:0, v1179:0, v1180:0, v1181:0, v1182:0, v1183:0, v1184:0, v1185:0, v1186:0, 1, v1188:0, 2, 1, v1194:0, 1 + v1194:0, v1189:0, v1195:0, v1196:0, v1197:0, v1198:0, v1199:0, v1200:0, v1201:0, v1202:0, v1203:0, v1204:0, 0, 3, 7, 2, 4, 8) :|: v1186:0 > 0 && v1188:0 > 1 && v1189:0 > 2 && v1192:0 > 2 && v1191:0 > 1 && v1194:0 > 0 && v1176:0 > 1 48.85/15.82 f_846(v1464:0, v1465:0, v1466:0, v1467:0, v1468:0, v1469:0, v1470:0, v1471:0, v1472:0, v1473:0, v1474:0, 1, v1476:0, v1478:0, v1477:0, v1479:0, v1480:0, v1481:0, v1482:0, v1483:0, v1484:0, v1485:0, v1486:0, v1487:0, v1488:0, v1489:0, v1490:0, v1491:0, 0, 3, 7, 2, 4, 8) -> f_846(v1464:0, v1465:0, v1466:0, v1467:0, v1468:0, v1469:0, v1470:0, v1471:0, v1472:0, v1473:0, v1474:0, 1, v1476:0, 1 + v1478:0, v1478:0, v1480:0, 1 + v1480:0, v1481:0, v1482:0, v1483:0, v1484:0, v1485:0, v1486:0, v1487:0, v1488:0, v1489:0, v1490:0, v1491:0, 0, 3, 7, 2, 4, 8) :|: v1478:0 > 0 && v1480:0 > 0 && v1476:0 > 2 && v1478:0 < v1476:0 && v1474:0 > 1 && v1464:0 > 2 && v1481:0 > 3 48.85/15.82 Filtered unneeded arguments: 48.85/15.82 f_846(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) -> f_846(x1, x11, x13, x14, x15, x17, x18) 48.85/15.82 f_801(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) -> f_801(x1, x11, x13, x15, x16, x18, x19) 48.85/15.82 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 48.85/15.82 f_846(v1464:0, sum~cons_1~v1580:0, sum~cons_2~v1580:0, sum~cons_2~v1580:01, sum~cons_1~v1580:01, v1480:0, v1481:0) -> f_801(v1464:0, v1580:0, 1 + v1580:0, 1 + v1580:0, 2 + v1580:0, v1480:0, 2 + v1580:0) :|: v1580:0 > -1 && sum~cons_1~v1580:0 = 1 + v1580:0 && sum~cons_2~v1580:0 = 2 + v1580:0 && sum~cons_2~v1580:01 = 2 + v1580:0 && sum~cons_1~v1580:01 = 1 + v1580:0 48.85/15.82 f_801(v1176:0, v1186:0, v1188:0, v1191:0, v1192:0, v1194:0, v1189:0) -> f_846(v1176:0, v1186:0, v1188:0, 2, 1, 1 + v1194:0, v1189:0) :|: v1188:0 > 1 && v1186:0 > 0 && v1189:0 > 2 && v1192:0 > 2 && v1191:0 > 1 && v1176:0 > 1 && v1194:0 > 0 48.85/15.82 f_846(v1464:0, v1474:0, v1476:0, v1478:0, v1477:0, v1480:0, v1481:0) -> f_846(v1464:0, v1474:0, v1476:0, 1 + v1478:0, v1478:0, 1 + v1480:0, v1481:0) :|: v1480:0 > 0 && v1478:0 > 0 && v1476:0 > 2 && v1478:0 < v1476:0 && v1474:0 > 1 && v1481:0 > 3 && v1464:0 > 2 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (9) 48.85/15.82 Obligation: 48.85/15.82 Rules: 48.85/15.82 f_846(v1464:0, sum~cons_1~v1580:0, sum~cons_2~v1580:0, sum~cons_2~v1580:01, sum~cons_1~v1580:01, v1480:0, v1481:0) -> f_801(v1464:0, v1580:0, 1 + v1580:0, 1 + v1580:0, 2 + v1580:0, v1480:0, 2 + v1580:0) :|: v1580:0 > -1 && sum~cons_1~v1580:0 = 1 + v1580:0 && sum~cons_2~v1580:0 = 2 + v1580:0 && sum~cons_2~v1580:01 = 2 + v1580:0 && sum~cons_1~v1580:01 = 1 + v1580:0 48.85/15.82 f_801(v1176:0, v1186:0, v1188:0, v1191:0, v1192:0, v1194:0, v1189:0) -> f_846(v1176:0, v1186:0, v1188:0, 2, 1, 1 + v1194:0, v1189:0) :|: v1188:0 > 1 && v1186:0 > 0 && v1189:0 > 2 && v1192:0 > 2 && v1191:0 > 1 && v1176:0 > 1 && v1194:0 > 0 48.85/15.82 f_846(x, x1, x2, x3, x4, x5, x6) -> f_846(x, x1, x2, 1 + x3, x3, 1 + x5, x6) :|: x5 > 0 && x3 > 0 && x2 > 2 && x3 < x2 && x1 > 1 && x6 > 3 && x > 2 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (10) IRS2T2 (EQUIVALENT) 48.85/15.82 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 48.85/15.82 48.85/15.82 (f_846_7,1) 48.85/15.82 (f_801_7,2) 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (11) 48.85/15.82 Obligation: 48.85/15.82 START: 0; 48.85/15.82 48.85/15.82 FROM: 0; 48.85/15.82 TO: 1; 48.85/15.82 48.85/15.82 FROM: 0; 48.85/15.82 TO: 2; 48.85/15.82 48.85/15.82 FROM: 1; 48.85/15.82 oldX0 := x0; 48.85/15.82 oldX1 := x1; 48.85/15.82 oldX2 := x2; 48.85/15.82 oldX3 := x3; 48.85/15.82 oldX4 := x4; 48.85/15.82 oldX5 := x5; 48.85/15.82 oldX6 := x6; 48.85/15.82 oldX7 := oldX1 - 1; 48.85/15.82 assume(oldX7 > -1 && oldX1 = 1 + oldX7 && oldX2 = 2 + oldX7 && oldX3 = 2 + oldX7 && oldX4 = 1 + oldX7); 48.85/15.82 x0 := oldX0; 48.85/15.82 x1 := oldX1 - 1; 48.85/15.82 x2 := 1 + oldX7; 48.85/15.82 x3 := 1 + oldX7; 48.85/15.82 x4 := 2 + oldX7; 48.85/15.82 x5 := oldX5; 48.85/15.82 x6 := 2 + oldX7; 48.85/15.82 TO: 2; 48.85/15.82 48.85/15.82 FROM: 2; 48.85/15.82 oldX0 := x0; 48.85/15.82 oldX1 := x1; 48.85/15.82 oldX2 := x2; 48.85/15.82 oldX3 := x3; 48.85/15.82 oldX4 := x4; 48.85/15.82 oldX5 := x5; 48.85/15.82 oldX6 := x6; 48.85/15.82 assume(oldX2 > 1 && oldX1 > 0 && oldX6 > 2 && oldX4 > 2 && oldX3 > 1 && oldX0 > 1 && oldX5 > 0); 48.85/15.82 x0 := oldX0; 48.85/15.82 x1 := oldX1; 48.85/15.82 x2 := oldX2; 48.85/15.82 x3 := 2; 48.85/15.82 x4 := 1; 48.85/15.82 x5 := 1 + oldX5; 48.85/15.82 x6 := oldX6; 48.85/15.82 TO: 1; 48.85/15.82 48.85/15.82 FROM: 1; 48.85/15.82 oldX0 := x0; 48.85/15.82 oldX1 := x1; 48.85/15.82 oldX2 := x2; 48.85/15.82 oldX3 := x3; 48.85/15.82 oldX4 := x4; 48.85/15.82 oldX5 := x5; 48.85/15.82 oldX6 := x6; 48.85/15.82 assume(oldX5 > 0 && oldX3 > 0 && oldX2 > 2 && oldX3 < oldX2 && oldX1 > 1 && oldX6 > 3 && oldX0 > 2); 48.85/15.82 x0 := oldX0; 48.85/15.82 x1 := oldX1; 48.85/15.82 x2 := oldX2; 48.85/15.82 x3 := 1 + oldX3; 48.85/15.82 x4 := oldX3; 48.85/15.82 x5 := 1 + oldX5; 48.85/15.82 x6 := oldX6; 48.85/15.82 TO: 1; 48.85/15.82 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (12) T2 (EQUIVALENT) 48.85/15.82 Initially, performed program simplifications using lexicographic rank functions: 48.85/15.82 * Removed transitions 2, 5, 6, 14, 16, 17 using the following rank functions: 48.85/15.82 - Rank function 1: 48.85/15.82 RF for loc. 6: 2*x2 48.85/15.82 RF for loc. 8: 2*x2 48.85/15.82 RF for loc. 12: 1+2*x2 48.85/15.82 Bound for (chained) transitions 5, 14: 4 48.85/15.82 Bound for (chained) transitions 16: 5 48.85/15.82 - Rank function 2: 48.85/15.82 RF for loc. 6: -2*x3 48.85/15.82 RF for loc. 8: -1-2*x3 48.85/15.82 RF for loc. 12: x5 48.85/15.82 Bound for (chained) transitions 17: 1 48.85/15.82 - Rank function 3: 48.85/15.82 RF for loc. 6: 2*x2-2*x3 48.85/15.82 RF for loc. 8: -1+2*x2-2*x3 48.85/15.82 Bound for (chained) transitions 6: 1 48.85/15.82 - Rank function 4: 48.85/15.82 RF for loc. 6: 1 48.85/15.82 RF for loc. 8: 0 48.85/15.82 Bound for (chained) transitions 2: 1 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (13) 48.85/15.82 YES 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (14) 48.85/15.82 Obligation: 48.85/15.82 SCC 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (15) SCC2IRS (SOUND) 48.85/15.82 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 48.85/15.82 Generated rules. Obtained 19 rulesP rules: 48.85/15.82 f_519(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_520(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_520(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_521(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_521(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_522(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_522(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_523(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: v223 < v221 && 3 <= v221 && 2 <= v210 48.85/15.82 f_523(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_525(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_525(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_527(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_527(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_529(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_529(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v222, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_531(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_531(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_533(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: v236 = 1 + v223 && 3 <= v236 48.85/15.82 f_533(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_535(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_535(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_537(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_537(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_539(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_539(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v224, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_541(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_541(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_543(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: v223 = 1 + v222 48.85/15.82 f_543(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_545(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 f_545(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_547(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_547(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_549(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_549(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_518(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v223, v236, v222, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: TRUE 48.85/15.82 f_518(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) -> f_519(v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, 0, 3, 7, 2, 4, 8) :|: 0 = 0 48.85/15.82 Combined rules. Obtained 1 rulesP rules: 48.85/15.82 f_519(v210:0, v211:0, v212:0, v213:0, v214:0, v215:0, v216:0, v217:0, v218:0, v219:0, 1, v221:0, v222:0, 1 + v222:0, v224:0, v225:0, v226:0, v227:0, v228:0, v229:0, v230:0, v231:0, v232:0, v233:0, v234:0, 0, 3, 7, 2, 4, 8) -> f_519(v210:0, v211:0, v212:0, v213:0, v214:0, v215:0, v216:0, v217:0, v218:0, v219:0, 1, v221:0, 1 + v222:0, 1 + (1 + v222:0), v222:0, v225:0, v226:0, v227:0, v228:0, v229:0, v230:0, v231:0, v232:0, v233:0, v234:0, 0, 3, 7, 2, 4, 8) :|: v221:0 > 2 && v221:0 > 1 + v222:0 && v222:0 > 0 && v210:0 > 1 48.85/15.82 Filtered unneeded arguments: 48.85/15.82 f_519(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) -> f_519(x1, x12, x13, x14) 48.85/15.82 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 48.85/15.82 f_519(v210:0, v221:0, v222:0, sum~cons_1~v222:0) -> f_519(v210:0, v221:0, 1 + v222:0, 1 + (1 + v222:0)) :|: v221:0 > 1 + v222:0 && v221:0 > 2 && v210:0 > 1 && v222:0 > 0 && sum~cons_1~v222:0 = 1 + v222:0 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (16) 48.85/15.82 Obligation: 48.85/15.82 Rules: 48.85/15.82 f_519(v210:0, v221:0, v222:0, sum~cons_1~v222:0) -> f_519(v210:0, v221:0, 1 + v222:0, 1 + (1 + v222:0)) :|: v221:0 > 1 + v222:0 && v221:0 > 2 && v210:0 > 1 && v222:0 > 0 && sum~cons_1~v222:0 = 1 + v222:0 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (17) IntTRSCompressionProof (EQUIVALENT) 48.85/15.82 Compressed rules. 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (18) 48.85/15.82 Obligation: 48.85/15.82 Rules: 48.85/15.82 f_519(v210:0:0, v221:0:0, v222:0:0, sum~cons_1~v222:0:0) -> f_519(v210:0:0, v221:0:0, 1 + v222:0:0, 1 + (1 + v222:0:0)) :|: v210:0:0 > 1 && v222:0:0 > 0 && v221:0:0 > 2 && v221:0:0 > 1 + v222:0:0 && sum~cons_1~v222:0:0 = 1 + v222:0:0 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (19) RankingReductionPairProof (EQUIVALENT) 48.85/15.82 Interpretation: 48.85/15.82 [ f_519 ] = -1*f_519_3 + f_519_2 48.85/15.82 48.85/15.82 The following rules are decreasing: 48.85/15.82 f_519(v210:0:0, v221:0:0, v222:0:0, sum~cons_1~v222:0:0) -> f_519(v210:0:0, v221:0:0, 1 + v222:0:0, 1 + (1 + v222:0:0)) :|: v210:0:0 > 1 && v222:0:0 > 0 && v221:0:0 > 2 && v221:0:0 > 1 + v222:0:0 && sum~cons_1~v222:0:0 = 1 + v222:0:0 48.85/15.82 48.85/15.82 The following rules are bounded: 48.85/15.82 f_519(v210:0:0, v221:0:0, v222:0:0, sum~cons_1~v222:0:0) -> f_519(v210:0:0, v221:0:0, 1 + v222:0:0, 1 + (1 + v222:0:0)) :|: v210:0:0 > 1 && v222:0:0 > 0 && v221:0:0 > 2 && v221:0:0 > 1 + v222:0:0 && sum~cons_1~v222:0:0 = 1 + v222:0:0 48.85/15.82 48.85/15.82 48.85/15.82 ---------------------------------------- 48.85/15.82 48.85/15.82 (20) 48.85/15.82 YES 49.18/15.89 EOF