49.03/17.74 YES 49.43/17.77 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 49.43/17.77 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 49.43/17.77 49.43/17.77 49.43/17.77 Termination of the given C Problem could be proven: 49.43/17.77 49.43/17.77 (0) C Problem 49.43/17.77 (1) CToLLVMProof [EQUIVALENT, 173 ms] 49.43/17.77 (2) LLVM problem 49.43/17.77 (3) LLVMToTerminationGraphProof [EQUIVALENT, 13.0 s] 49.43/17.77 (4) LLVM Symbolic Execution Graph 49.43/17.77 (5) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] 49.43/17.77 (6) LLVM Symbolic Execution Lasso 49.43/17.77 (7) Lasso2IRS [SOUND, 259 ms] 49.43/17.77 (8) IntTRS 49.43/17.77 (9) IRS2T2 [EQUIVALENT, 0 ms] 49.43/17.77 (10) T2IntSys 49.43/17.77 (11) T2 [EQUIVALENT, 1244 ms] 49.43/17.77 (12) YES 49.43/17.77 49.43/17.77 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (0) 49.43/17.77 Obligation: 49.43/17.77 c file /export/starexec/sandbox/benchmark/theBenchmark.c 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (1) CToLLVMProof (EQUIVALENT) 49.43/17.77 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (2) 49.43/17.77 Obligation: 49.43/17.77 LLVM Problem 49.43/17.77 49.43/17.77 Aliases: 49.43/17.77 49.43/17.77 Data layout: 49.43/17.77 49.43/17.77 "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" 49.43/17.77 49.43/17.77 Machine: 49.43/17.77 49.43/17.77 "x86_64-pc-linux-gnu" 49.43/17.77 49.43/17.77 Type definitions: 49.43/17.77 49.43/17.77 Global variables: 49.43/17.77 49.43/17.77 Function declarations and definitions: 49.43/17.77 49.43/17.77 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 49.43/17.77 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 49.43/17.77 *BasicFunctionTypename: "ackermann" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (m i32, n i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 49.43/17.77 0: 49.43/17.77 %1 = alloca i32, align 4 49.43/17.77 %2 = alloca i32, align 4 49.43/17.77 %3 = alloca i32, align 4 49.43/17.77 store %m, %2 49.43/17.77 store %n, %3 49.43/17.77 %4 = load %2 49.43/17.77 %5 = icmp eq %4 0 49.43/17.77 br %5, %6, %9 49.43/17.77 6: 49.43/17.77 %7 = load %3 49.43/17.77 %8 = add %7 1 49.43/17.77 store %8, %1 49.43/17.77 br %24 49.43/17.77 9: 49.43/17.77 %10 = load %3 49.43/17.77 %11 = icmp eq %10 0 49.43/17.77 br %11, %12, %16 49.43/17.77 12: 49.43/17.77 %13 = load %2 49.43/17.77 %14 = sub %13 1 49.43/17.77 %15 = call i32 @ackermann(i32 %14, i32 1) 49.43/17.77 store %15, %1 49.43/17.77 br %24 49.43/17.77 16: 49.43/17.77 %17 = load %2 49.43/17.77 %18 = sub %17 1 49.43/17.77 %19 = load %2 49.43/17.77 %20 = load %3 49.43/17.77 %21 = sub %20 1 49.43/17.77 %22 = call i32 @ackermann(i32 %19, i32 %21) 49.43/17.77 %23 = call i32 @ackermann(i32 %18, i32 %22) 49.43/17.77 store %23, %1 49.43/17.77 br %24 49.43/17.77 24: 49.43/17.77 %25 = load %1 49.43/17.77 ret %25 49.43/17.77 49.43/17.77 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 49.43/17.77 0: 49.43/17.77 %1 = alloca i32, align 4 49.43/17.77 %m = alloca i32, align 4 49.43/17.77 %n = alloca i32, align 4 49.43/17.77 %result = alloca i32, align 4 49.43/17.77 store 0, %1 49.43/17.77 %2 = call i32 @__VERIFIER_nondet_int() 49.43/17.77 store %2, %m 49.43/17.77 %3 = load %m 49.43/17.77 %4 = icmp slt %3 0 49.43/17.77 br %4, %8, %5 49.43/17.77 5: 49.43/17.77 %6 = load %m 49.43/17.77 %7 = icmp sgt %6 3 49.43/17.77 br %7, %8, %9 49.43/17.77 8: 49.43/17.77 store 0, %1 49.43/17.77 br %32 49.43/17.77 9: 49.43/17.77 %10 = call i32 @__VERIFIER_nondet_int() 49.43/17.77 store %10, %n 49.43/17.77 %11 = load %n 49.43/17.77 %12 = icmp slt %11 0 49.43/17.77 br %12, %16, %13 49.43/17.77 13: 49.43/17.77 %14 = load %n 49.43/17.77 %15 = icmp sgt %14 23 49.43/17.77 br %15, %16, %17 49.43/17.77 16: 49.43/17.77 store 0, %1 49.43/17.77 br %32 49.43/17.77 17: 49.43/17.77 %18 = load %m 49.43/17.77 %19 = load %n 49.43/17.77 %20 = call i32 @ackermann(i32 %18, i32 %19) 49.43/17.77 store %20, %result 49.43/17.77 %21 = load %m 49.43/17.77 %22 = icmp slt %21 0 49.43/17.77 br %22, %29, %23 49.43/17.77 23: 49.43/17.77 %24 = load %n 49.43/17.77 %25 = icmp slt %24 0 49.43/17.77 br %25, %29, %26 49.43/17.77 26: 49.43/17.77 %27 = load %result 49.43/17.77 %28 = icmp sge %27 0 49.43/17.77 br %28, %29, %30 49.43/17.77 29: 49.43/17.77 store 0, %1 49.43/17.77 br %32 49.43/17.77 30: 49.43/17.77 br %31 49.43/17.77 31: 49.43/17.77 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 49.43/17.77 unreachable 49.43/17.77 32: 49.43/17.77 %33 = load %1 49.43/17.77 ret %33 49.43/17.77 49.43/17.77 49.43/17.77 Analyze Termination of all function calls matching the pattern: 49.43/17.77 main() 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (3) LLVMToTerminationGraphProof (EQUIVALENT) 49.43/17.77 Constructed symbolic execution graph for LLVM program and proved memory safety. 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (4) 49.43/17.77 Obligation: 49.43/17.77 SE Graph 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (5) SymbolicExecutionGraphToLassoProof (EQUIVALENT) 49.43/17.77 Converted SEGraph to 1 independent lasso. 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (6) 49.43/17.77 Obligation: 49.43/17.77 Lasso 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (7) Lasso2IRS (SOUND) 49.43/17.77 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 49.43/17.77 Generated rules. Obtained 118 rulesP rules: 49.43/17.77 f_597(v1139, v1140, v1156, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, 0, v1150, v1151, 3, 1, 4, 23) -> f_599(v1139, v1140, v1156, v1158, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, 0, v1150, v1151, 3, 1, 4, 23) :|: 1 <= v1158 && v1159 = 3 + v1158 && 4 <= v1159 49.43/17.77 f_599(v1139, v1140, v1156, v1158, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, 0, v1150, v1151, 3, 1, 4, 23) -> f_600(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) :|: 1 <= v1160 && v1161 = 3 + v1160 && 4 <= v1161 49.43/17.77 f_600(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) -> f_601(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_601(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) -> f_602(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_602(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) -> f_603(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_603(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) -> f_605(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) :|: v1139 != 0 && 1 <= v1150 49.43/17.77 f_605(v1139, v1140, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, 0, v1150, v1151, 3, 1, 4, 23) -> f_607(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_607(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_609(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_609(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_611(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_611(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_613(v1139, 0, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: v1140 = 0 49.43/17.77 f_611(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_614(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: v1140 != 0 49.43/17.77 f_613(v1139, 0, v1156, v1158, v1160, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_616(v1139, 0, v1156, v1158, v1160, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23) :|: 0 = 0 49.43/17.77 f_616(v1139, 0, v1156, v1158, v1160, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23) -> f_619(v1139, 0, v1156, v1158, v1160, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23) :|: TRUE 49.43/17.77 f_619(v1139, 0, v1156, v1158, v1160, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23) -> f_622(v1139, 0, v1156, v1158, v1160, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23) :|: 0 = 0 49.43/17.77 f_622(v1139, 0, v1156, v1158, v1160, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23) -> f_625(v1139, 0, v1156, v1158, v1160, 1, v1184, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 1 + v1184 = v1139 && 0 <= v1184 && v1184 <= 2 49.43/17.77 f_625(v1139, 0, v1156, v1158, v1160, 1, v1184, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_628(v1184, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_628(v1184, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 3, 4, 23, 2) -> f_631(v1184, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_631(v1184, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 3, 4, 23, 2) -> f_595(v1184, 1, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_595(v1139, v1140, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) -> f_597(v1139, v1140, v1156, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, 0, v1150, v1151, 3, 1, 4, 23) :|: 1 <= v1156 && v1157 = 3 + v1156 && 4 <= v1157 49.43/17.77 f_614(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_617(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_617(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_620(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_620(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_623(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_623(v1139, v1140, v1156, v1158, v1160, 0, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23) -> f_626(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 1 + v1185 = v1139 && 0 <= v1185 && v1185 <= 2 49.43/17.77 f_626(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_629(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_629(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_632(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_632(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_634(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 1 + v1200 = v1140 && 0 <= v1200 49.43/17.77 f_634(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_640(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_815(v1139, 0, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_869(v1139, 0, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_913(v1139, 0, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_968(v1139, 0, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1031(v1139, 0, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1043(v1139, v1200, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1089(v1139, 0, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1146(v1139, 0, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1154(v1139, v1200, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1206(v1139, 0, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1215(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1253(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1280(v1139, 0, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1290(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_637(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1320(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_640(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, 3, 1, 4, 23) -> f_595(v1139, v1200, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_815(v1139, 0, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_820(v1139, 1, v1156, v1158, v1160, 0, v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_820(v1139, 1, v1156, v1158, v1160, 0, v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_822(v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_822(v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_824(v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_824(v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_595(v1185, v2190, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_869(v1139, 0, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_878(v1139, 1, v1156, v1158, v1160, 0, v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_878(v1139, 1, v1156, v1158, v1160, 0, v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_884(v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_884(v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_890(v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_890(v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_595(v1185, v2478, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_913(v1139, 0, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_925(v1139, 1, v1156, v1158, v1160, 0, v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_925(v1139, 1, v1156, v1158, v1160, 0, v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_933(v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_933(v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_945(v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_945(v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_595(v1185, v2767, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_968(v1139, 0, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_985(v1139, 1, v1156, v1158, v1160, 0, v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_985(v1139, 1, v1156, v1158, v1160, 0, v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_998(v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_998(v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_1016(v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_1016(v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_595(v1185, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_1031(v1139, 0, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_968(v1139, 0, v3061, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_1043(v1139, v1200, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1051(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1051(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_1059(v1185, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, v1200, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1059(v1185, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, v1200, 3, 1, 4, 23, 2) -> f_1067(v1185, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_1067(v1185, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, 3, 1, 4, 23, 2) -> f_595(v1185, v3475, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_1089(v1139, 0, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_1106(v1139, 1, v1156, v1158, v1160, 0, v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1106(v1139, 1, v1156, v1158, v1160, 0, v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_1119(v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1119(v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_1131(v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_1131(v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_595(v1185, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_1146(v1139, 0, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_1089(v1139, 0, v3734, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_1154(v1139, v1200, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1172(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1172(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_1183(v1185, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, v1200, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1183(v1185, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, v1200, 3, 1, 4, 23, 2) -> f_1194(v1185, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_1194(v1185, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, 3, 1, 4, 23, 2) -> f_595(v1185, v4135, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_1206(v1139, 0, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_1225(v1139, 1, v1156, v1158, v1160, 0, v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1225(v1139, 1, v1156, v1158, v1160, 0, v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 4, 23, 2) -> f_1239(v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1239(v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_1262(v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_1262(v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, 1, 3, 4, 23, 2) -> f_595(v1185, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_1215(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1231(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1231(v1139, v1140, v1156, v1158, v1160, 0, v1185, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1157, v1159, v1161, v1150, v1151, 3, 1, 4, 23, 2) -> f_1244(v1185, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, v1200, 3, 1, 4, 23, 2) :|: 0 = 0 49.43/17.77 f_1244(v1185, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, v1200, 3, 1, 4, 23, 2) -> f_1267(v1185, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_1267(v1185, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1139, v1140, 3, 1, 4, 23, 2) -> f_595(v1185, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, 0, v1150, v1151, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_1253(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1215(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_1280(v1139, 0, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) -> f_1206(v1139, 0, v4550, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, v1150, v1151, 1, v1185, 3, 4, 23, 2) :|: TRUE 49.43/17.77 f_1290(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1253(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_1320(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) -> f_1290(v1139, v1200, v4653, v1141, v1142, v1143, v1144, v1145, v1146, v1147, v1148, v1156, v1157, v1158, v1159, v1160, v1161, 0, v1150, v1151, v1140, v1185, 3, 1, 4, 23, 2) :|: TRUE 49.43/17.77 f_233 -> f_234(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 49.43/17.77 f_234(v1, v2, 3, 1, 4) -> f_235(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 49.43/17.77 f_235(v1, v3, v2, v4, 3, 1, 4) -> f_236(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 49.43/17.77 f_236(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_237(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 49.43/17.77 f_237(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_238(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 49.43/17.77 f_238(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) -> f_239(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 49.43/17.77 f_239(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_240(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 49.43/17.77 f_240(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_241(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_241(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_243(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 <= v9 49.43/17.77 f_243(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_245(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_245(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) -> f_247(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) :|: TRUE 49.43/17.77 f_247(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) -> f_249(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_249(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) -> f_252(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) :|: v9 <= 3 49.43/17.77 f_252(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) -> f_255(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_255(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) -> f_257(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) :|: TRUE 49.43/17.77 f_257(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 3, 1, 4) -> f_259(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: TRUE 49.43/17.77 f_259(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_261(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: TRUE 49.43/17.77 f_261(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_263(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_263(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_265(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 <= v11 49.43/17.77 f_265(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_267(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_267(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_269(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: TRUE 49.43/17.77 f_269(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_271(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 49.43/17.77 f_271(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_274(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) :|: v11 <= 23 49.43/17.77 f_274(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) -> f_277(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_277(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) -> f_279(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_279(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) -> f_281(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_281(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) -> f_283(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_283(v1, v3, v5, v7, v9, 0, v11, v2, v4, v6, v8, 3, 1, 4, 23) -> f_285(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4, 23) :|: 0 = 0 49.43/17.77 f_285(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4, 23) -> f_286(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4, 23) :|: TRUE 49.43/17.77 f_286(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4, 23) -> f_323(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, v9, v11, 3, 1, 23, 4) :|: TRUE 49.43/17.77 f_323(v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, 0, v67, v68, 3, 1, 23, 4) -> f_363(v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, 0, v67, v68, 3, 23, 1, 4) :|: TRUE 49.43/17.77 f_363(v101, v102, v103, v104, v105, v106, v107, v108, v109, v110, 0, v112, v113, 3, 23, 1, 4) -> f_595(v101, v102, v103, v104, v105, v106, v107, v108, v109, v110, 0, v112, v113, 3, 1, 4, 23) :|: TRUE 49.43/17.77 Combined rules. Obtained 4 rulesP rules: 49.43/17.77 f_597(1 + v1185:0, 1 + v1200:0, v1156:0, v1141:0, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1148:0, v1157:0, 0, v1150:0, v1151:0, 3, 1, 4, 23) -> f_597(v1185:0, v4653:0, v1156:1, v1141:0, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1148:0, 3 + v1156:1, 0, v1150:0, v1151:0, 3, 1, 4, 23) :|: v1160:0 > 0 && v1158:0 > 0 && v1150:0 > 0 && v1185:0 > -1 && v1200:0 > -1 && v1185:0 < 3 && v1156:1 > 0 49.43/17.77 f_597(1 + v1185:0, 1 + v1200:0, v1156:0, v1141:0, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1148:0, v1157:0, 0, v1150:0, v1151:0, 3, 1, 4, 23) -> f_597(1 + v1185:0, v1200:0, v1156:1, v1141:0, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1148:0, 3 + v1156:1, 0, v1150:0, v1151:0, 3, 1, 4, 23) :|: v1160:0 > 0 && v1158:0 > 0 && v1150:0 > 0 && v1185:0 > -1 && v1200:0 > -1 && v1185:0 < 3 && v1156:1 > 0 49.43/17.77 f_233 -> f_597(v9:0, v11:0, v1156:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, v5:0, 3 + v5:0, v7:0, 3 + v7:0, 3 + v1156:0, 0, v9:0, v11:0, 3, 1, 4, 23) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > -1 && v9:0 < 4 && v11:0 > -1 && v11:0 < 24 && v1156:0 > 0 49.43/17.77 f_597(1 + v1184:0, 0, v1156:0, v1141:0, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1148:0, v1157:0, 0, v1150:0, v1151:0, 3, 1, 4, 23) -> f_597(v1184:0, 1, v1156:1, v1141:0, v1142:0, v1143:0, v1144:0, v1145:0, v1146:0, v1147:0, v1148:0, 3 + v1156:1, 0, v1150:0, v1151:0, 3, 1, 4, 23) :|: v1160:0 > 0 && v1158:0 > 0 && v1150:0 > 0 && v1184:0 > -1 && v1184:0 < 3 && v1156:1 > 0 49.43/17.77 Filtered unneeded arguments: 49.43/17.77 f_597(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_597(x1, x2, x14) 49.43/17.77 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 49.43/17.77 f_597(sum~cons_1~v1185:0, sum~cons_1~v1200:0, v1150:0) -> f_597(v1185:0, v4653:0, v1150:0) :|: v1185:0 > -1 && v1150:0 > 0 && v1185:0 < 3 && v1200:0 > -1 && sum~cons_1~v1185:0 = 1 + v1185:0 && sum~cons_1~v1200:0 = 1 + v1200:0 49.43/17.77 f_597(sum~cons_1~v1185:0, sum~cons_1~v1200:0, v1150:0) -> f_597(1 + v1185:0, v1200:0, v1150:0) :|: v1185:0 > -1 && v1150:0 > 0 && v1185:0 < 3 && v1200:0 > -1 && sum~cons_1~v1185:0 = 1 + v1185:0 && sum~cons_1~v1200:0 = 1 + v1200:0 49.43/17.77 f_233 -> f_597(v9:0, v11:0, v9:0) :|: v9:0 < 4 && v9:0 > -1 && v11:0 < 24 && v11:0 > -1 49.43/17.77 f_597(sum~cons_1~v1184:0, cons_0, v1150:0) -> f_597(v1184:0, 1, v1150:0) :|: v1184:0 > -1 && v1184:0 < 3 && v1150:0 > 0 && sum~cons_1~v1184:0 = 1 + v1184:0 && cons_0 = 0 49.43/17.77 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (8) 49.43/17.77 Obligation: 49.43/17.77 Rules: 49.43/17.77 f_597(sum~cons_1~v1185:0, sum~cons_1~v1200:0, v1150:0) -> f_597(v1185:0, v4653:0, v1150:0) :|: v1185:0 > -1 && v1150:0 > 0 && v1185:0 < 3 && v1200:0 > -1 && sum~cons_1~v1185:0 = 1 + v1185:0 && sum~cons_1~v1200:0 = 1 + v1200:0 49.43/17.77 f_597(x, x1, x2) -> f_597(1 + x3, x4, x2) :|: x3 > -1 && x2 > 0 && x3 < 3 && x4 > -1 && x = 1 + x3 && x1 = 1 + x4 49.43/17.77 f_233 -> f_597(v9:0, v11:0, v9:0) :|: v9:0 < 4 && v9:0 > -1 && v11:0 < 24 && v11:0 > -1 49.43/17.77 f_597(x5, x6, x7) -> f_597(x8, 1, x7) :|: x8 > -1 && x8 < 3 && x7 > 0 && x5 = 1 + x8 && x6 = 0 49.43/17.77 Start term: f_233 49.43/17.77 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (9) IRS2T2 (EQUIVALENT) 49.43/17.77 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 49.43/17.77 49.43/17.77 (f_597_3,1) 49.43/17.77 (f_233_3,2) 49.43/17.77 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (10) 49.43/17.77 Obligation: 49.43/17.77 START: 2; 49.43/17.77 49.43/17.77 FROM: 1; 49.43/17.77 oldX0 := x0; 49.43/17.77 oldX1 := x1; 49.43/17.77 oldX2 := x2; 49.43/17.77 oldX3 := oldX0 - 1; 49.43/17.77 oldX5 := oldX1 - 1; 49.43/17.77 oldX4 := nondet(); 49.43/17.77 assume(oldX3 > -1 && oldX2 > 0 && oldX3 < 3 && oldX5 > -1 && oldX0 = 1 + oldX3 && oldX1 = 1 + oldX5); 49.43/17.77 x0 := oldX0 - 1; 49.43/17.77 x1 := oldX4; 49.43/17.77 x2 := oldX2; 49.43/17.77 TO: 1; 49.43/17.77 49.43/17.77 FROM: 1; 49.43/17.77 oldX0 := x0; 49.43/17.77 oldX1 := x1; 49.43/17.77 oldX2 := x2; 49.43/17.77 oldX3 := oldX0 - 1; 49.43/17.77 oldX4 := oldX1 - 1; 49.43/17.77 assume(oldX3 > -1 && oldX2 > 0 && oldX3 < 3 && oldX4 > -1 && oldX0 = 1 + oldX3 && oldX1 = 1 + oldX4); 49.43/17.77 x0 := 1 + oldX3; 49.43/17.77 x1 := oldX1 - 1; 49.43/17.77 x2 := oldX2; 49.43/17.77 TO: 1; 49.43/17.77 49.43/17.77 FROM: 2; 49.43/17.77 oldX0 := x0; 49.43/17.77 oldX1 := x1; 49.43/17.77 oldX2 := x2; 49.43/17.77 oldX3 := nondet(); 49.43/17.77 oldX4 := nondet(); 49.43/17.77 assume(oldX3 < 4 && oldX3 > -1 && oldX4 < 24 && oldX4 > -1); 49.43/17.77 x0 := oldX3; 49.43/17.77 x1 := oldX4; 49.43/17.77 x2 := oldX3; 49.43/17.77 TO: 1; 49.43/17.77 49.43/17.77 FROM: 1; 49.43/17.77 oldX0 := x0; 49.43/17.77 oldX1 := x1; 49.43/17.77 oldX2 := x2; 49.43/17.77 oldX3 := oldX0 - 1; 49.43/17.77 assume(oldX3 > -1 && oldX3 < 3 && oldX2 > 0 && oldX0 = 1 + oldX3 && oldX1 = 0); 49.43/17.77 x0 := oldX0 - 1; 49.43/17.77 x1 := 1; 49.43/17.77 x2 := oldX2; 49.43/17.77 TO: 1; 49.43/17.77 49.43/17.77 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (11) T2 (EQUIVALENT) 49.43/17.77 Initially, performed program simplifications using lexicographic rank functions: 49.43/17.77 * Removed transitions 1, 4, 5, 6 using the following rank functions: 49.43/17.77 - Rank function 1: 49.43/17.77 RF for loc. 5: 3*x0 49.43/17.77 RF for loc. 6: 3*x0 49.43/17.77 Bound for (chained) transitions 4: 3 49.43/17.77 Bound for (chained) transitions 6: 3 49.43/17.77 - Rank function 2: 49.43/17.77 RF for loc. 5: 1+2*x1 49.43/17.77 RF for loc. 6: 2*x1 49.43/17.77 Bound for (chained) transitions 5: 2 49.43/17.77 - Rank function 3: 49.43/17.77 RF for loc. 5: 0 49.43/17.77 RF for loc. 6: -1 49.43/17.77 Bound for (chained) transitions 1: 0 49.43/17.77 49.43/17.77 ---------------------------------------- 49.43/17.77 49.43/17.77 (12) 49.43/17.77 YES 49.53/17.84 EOF