60.53/16.21 YES 60.53/16.23 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 60.53/16.23 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 60.53/16.23 60.53/16.23 60.53/16.23 Termination of the given C Problem could be proven: 60.53/16.23 60.53/16.23 (0) C Problem 60.53/16.23 (1) CToLLVMProof [EQUIVALENT, 155 ms] 60.53/16.23 (2) LLVM problem 60.53/16.23 (3) LLVMToTerminationGraphProof [EQUIVALENT, 9411 ms] 60.53/16.23 (4) LLVM Symbolic Execution Graph 60.53/16.23 (5) SEGraph to IRS [EQUIVALENT, 247 ms] 60.53/16.23 (6) IntTRS 60.53/16.23 (7) IRS2T2 [EQUIVALENT, 0 ms] 60.53/16.23 (8) T2IntSys 60.53/16.23 (9) T2 [EQUIVALENT, 1344 ms] 60.53/16.23 (10) YES 60.53/16.23 60.53/16.23 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (0) 60.53/16.23 Obligation: 60.53/16.23 c file /export/starexec/sandbox/benchmark/theBenchmark.c 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (1) CToLLVMProof (EQUIVALENT) 60.53/16.23 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (2) 60.53/16.23 Obligation: 60.53/16.23 LLVM Problem 60.53/16.23 60.53/16.23 Aliases: 60.53/16.23 60.53/16.23 Data layout: 60.53/16.23 60.53/16.23 "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" 60.53/16.23 60.53/16.23 Machine: 60.53/16.23 60.53/16.23 "x86_64-pc-linux-gnu" 60.53/16.23 60.53/16.23 Type definitions: 60.53/16.23 60.53/16.23 Global variables: 60.53/16.23 60.53/16.23 Function declarations and definitions: 60.53/16.23 60.53/16.23 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 60.53/16.23 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 60.53/16.23 0: 60.53/16.23 %1 = alloca i32, align 4 60.53/16.23 %k = alloca i32, align 4 60.53/16.23 %i = alloca i32, align 4 60.53/16.23 %j = alloca i32, align 4 60.53/16.23 %n = alloca i32, align 4 60.53/16.23 store 0, %1 60.53/16.23 %2 = call i32 @__VERIFIER_nondet_int() 60.53/16.23 store %2, %k 60.53/16.23 %3 = call i32 @__VERIFIER_nondet_int() 60.53/16.23 store %3, %i 60.53/16.23 %4 = call i32 @__VERIFIER_nondet_int() 60.53/16.23 store %4, %j 60.53/16.23 %5 = call i32 @__VERIFIER_nondet_int() 60.53/16.23 store %5, %n 60.53/16.23 %6 = load %k 60.53/16.23 %7 = icmp sge %6 1 60.53/16.23 br %7, %8, %26 60.53/16.23 8: 60.53/16.23 store 0, %i 60.53/16.23 br %9 60.53/16.23 9: 60.53/16.23 %10 = load %i 60.53/16.23 %11 = load %n 60.53/16.23 %12 = icmp slt %10 %11 60.53/16.23 br %12, %13, %25 60.53/16.23 13: 60.53/16.23 store 0, %j 60.53/16.23 br %14 60.53/16.23 14: 60.53/16.23 %15 = load %j 60.53/16.23 %16 = load %i 60.53/16.23 %17 = icmp sle %15 %16 60.53/16.23 br %17, %18, %22 60.53/16.23 18: 60.53/16.23 %19 = load %j 60.53/16.23 %20 = load %k 60.53/16.23 %21 = add %19 %20 60.53/16.23 store %21, %j 60.53/16.23 br %14 60.53/16.23 22: 60.53/16.23 %23 = load %i 60.53/16.23 %24 = add %23 1 60.53/16.23 store %24, %i 60.53/16.23 br %9 60.53/16.23 25: 60.53/16.23 br %26 60.53/16.23 26: 60.53/16.23 ret 0 60.53/16.23 60.53/16.23 60.53/16.23 Analyze Termination of all function calls matching the pattern: 60.53/16.23 main() 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (3) LLVMToTerminationGraphProof (EQUIVALENT) 60.53/16.23 Constructed symbolic execution graph for LLVM program and proved memory safety. 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (4) 60.53/16.23 Obligation: 60.53/16.23 SE Graph 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (5) SEGraph to IRS (EQUIVALENT) 60.53/16.23 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 60.53/16.23 Generated rules. Obtained 109 rulesP rules: 60.53/16.23 f_123 -> f_124(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 60.53/16.23 f_124(v1, v2, 3, 1, 4) -> f_125(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 60.53/16.23 f_125(v1, v3, v2, v4, 3, 1, 4) -> f_126(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 60.53/16.23 f_126(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_127(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 60.53/16.23 f_127(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_128(v1, v3, v5, v7, v9, v2, v4, v6, v8, v10, 3, 1, 4) :|: 1 <= v9 && v10 = 3 + v9 && 4 <= v10 60.53/16.23 f_128(v1, v3, v5, v7, v9, v2, v4, v6, v8, v10, 3, 1, 4) -> f_129(v1, v3, v5, v7, v9, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_129(v1, v3, v5, v7, v9, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_130(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_130(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_131(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_131(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_132(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_132(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_133(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_133(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_134(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_134(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_135(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_135(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_136(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_136(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_137(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: TRUE 60.53/16.23 f_137(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_138(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: 0 = 0 60.53/16.23 f_138(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_139(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: 1 <= v11 60.53/16.23 f_138(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_140(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) :|: v11 < 1 60.53/16.23 f_139(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_141(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) :|: 0 = 0 60.53/16.23 f_140(v1, v3, v5, v7, v9, v11, v13, v15, v17, v2, v4, v6, v8, v10, 0, 3, 1, 4) -> f_142(v1, v3, v5, v7, v9, v11, v13, v15, v17, 0, v2, v4, v6, v8, v10, 3, 1, 4) :|: 0 = 0 60.53/16.23 f_141(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) -> f_143(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) :|: TRUE 60.53/16.23 f_142(v1, v3, v5, v7, v9, v11, v13, v15, v17, 0, v2, v4, v6, v8, v10, 3, 1, 4) -> f_144(v1, v3, v5, v7, v9, v11, v13, v15, v17, 0, v2, v4, v6, v8, v10, 3, 1, 4) :|: TRUE 60.53/16.23 f_143(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) -> f_145(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) :|: TRUE 60.53/16.23 f_145(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) -> f_146(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) :|: TRUE 60.53/16.23 f_146(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, v2, v4, v6, v8, v10, 0, 3, 4) -> f_147(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_147(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_148(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_148(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_149(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 < v17 60.53/16.23 f_148(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_150(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: v17 <= 0 60.53/16.23 f_149(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_151(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_150(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_152(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_151(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_153(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_152(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_154(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_153(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_155(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_154(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_156(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_155(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_157(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_157(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_158(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_158(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_159(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_159(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_160(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_160(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_161(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_161(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_162(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_162(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_163(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_163(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_164(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_164(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_165(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_165(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_166(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_166(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_167(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_167(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_168(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_168(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_169(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_169(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_170(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_170(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_171(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_171(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_172(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_172(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_173(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_173(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_174(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_174(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_175(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_175(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_176(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_176(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_177(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) :|: 1 < v17 60.53/16.23 f_176(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_178(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: v17 <= 1 60.53/16.23 f_177(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) -> f_179(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) :|: 0 = 0 60.53/16.23 f_178(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_180(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: 0 = 0 60.53/16.23 f_179(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) -> f_181(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) :|: TRUE 60.53/16.23 f_180(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_182(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_181(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) -> f_183(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) :|: TRUE 60.53/16.23 f_182(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) -> f_184(v1, v3, v5, v7, v9, v11, v13, v15, 1, 0, v2, v4, v6, v8, v10, 3, 4) :|: TRUE 60.53/16.23 f_183(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) -> f_185(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) :|: TRUE 60.53/16.23 f_185(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 0, v2, v4, v6, v8, v10, 3, 4, 2) -> f_231(v1, v3, v5, v7, v9, v11, v13, v15, v17, 1, 1, v11, 0, 0, 0, v2, v4, v6, v8, v10, 3, 2, 4) :|: TRUE 60.53/16.23 f_202(v66, v67, v68, v69, v70, v71, v72, v73, v74, 1, v76, 0, v78, v79, v80, v81, v82, 3, 2, 4) -> f_236(v66, v67, v68, v69, v70, v71, v72, v73, v74, 1, 1, v76, 0, v71, 0, v78, v79, v80, v81, v82, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_231(v179, v180, v181, v182, v183, v184, v185, v186, v187, 1, v189, v190, v191, 0, v193, v194, v195, v196, v197, v198, 3, 2, 4) -> f_278(v179, v180, v181, v182, v183, v184, v185, v186, v187, 1, v189, v190, v191, 0, v193, v194, v195, v196, v197, v198, 3, 2, 4) :|: TRUE 60.53/16.23 f_236(v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, 0, 3, 2, 4) -> f_249(v211, v212, v213, v214, v215, v216, v217, v218, v219, 1, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_249(v260, v261, v262, v263, v264, v265, v266, v267, v268, 1, v270, v271, v272, v273, v274, v275, v276, v277, v278, v279, 0, 3, 2, 4) -> f_283(v260, v261, v262, v263, v264, v265, v266, v267, v268, 1, v270, v271, v272, v273, v274, v275, v276, v277, v278, v279, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_278(v384, v385, v386, v387, v388, v389, v390, v391, v392, 1, v394, v395, v396, 0, v398, v399, v400, v401, v402, v403, 3, 2, 4) -> f_325(v384, v385, v386, v387, v388, v389, v390, v391, v392, 1, v394, v395, v396, 0, v398, v399, v400, v401, v402, v403, 3, 2, 4) :|: TRUE 60.53/16.23 f_283(v417, v418, v419, v420, v421, v422, v423, v424, v425, 1, v427, v428, v429, v430, v431, v432, v433, v434, v435, v436, 0, 3, 2, 4) -> f_296(v417, v418, v419, v420, v421, v422, v423, v424, v425, 1, v427, v428, v429, v430, v431, v432, v433, v434, v435, v436, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_296(v466, v467, v468, v469, v470, v471, v472, v473, v474, 1, v476, v477, v478, v479, v480, v481, v482, v483, v484, v485, 0, 3, 2, 4) -> f_330(v466, v467, v468, v469, v470, v471, v472, v473, v474, 1, v476, v477, v478, v479, v480, v481, v482, v483, v484, v485, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_325(v589, v590, v591, v592, v593, v594, v595, v596, v597, 1, v599, v600, v601, 0, v603, v604, v605, v606, v607, v608, 3, 2, 4) -> f_359(v589, v590, v591, v592, v593, v594, v595, v596, v597, 1, v599, v600, v601, 0, v603, v604, v605, v606, v607, v608, 3, 2, 4) :|: TRUE 60.53/16.23 f_330(v622, v623, v624, v625, v626, v627, v628, v629, v630, 1, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, 0, 3, 2, 4) -> f_364(v622, v623, v624, v625, v626, v627, v628, v629, v630, 1, v632, v633, v634, v635, v636, v637, v638, v639, v640, v641, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_359(v751, v752, v753, v754, v755, v756, v757, v758, v759, 1, v761, v762, v763, 0, v765, v766, v767, v768, v769, v770, 3, 2, 4) -> f_393(v751, v752, v753, v754, v755, v756, v757, v758, v759, 1, v761, v762, v763, 0, v765, v766, v767, v768, v769, v770, 3, 2, 4) :|: TRUE 60.53/16.23 f_364(v784, v785, v786, v787, v788, v789, v790, v791, v792, 1, v794, v795, v796, v797, v798, v799, v800, v801, v802, v803, 0, 3, 2, 4) -> f_398(v784, v785, v786, v787, v788, v789, v790, v791, v792, 1, v794, v795, v796, v797, v798, v799, v800, v801, v802, v803, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_393(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, v924, v925, 0, v927, v928, v929, v930, v931, v932, 3, 2, 4) -> f_394(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v925, v927, v924, v928, v929, v930, v931, v932, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_394(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v925, v927, v924, v928, v929, v930, v931, v932, 3, 2, 4) -> f_395(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_395(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 3, 2, 4) -> f_396(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_396(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 3, 2, 4) -> f_397(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 3, 2, 4) :|: TRUE 60.53/16.23 f_397(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 3, 2, 4) -> f_398(v913, v914, v915, v916, v917, v918, v919, v920, v921, 1, v923, 0, v927, v924, v925, v928, v929, v930, v931, v932, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_398(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v958, v959, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_399(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v959, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_399(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v959, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_400(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v959, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_400(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v959, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_401(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: v967 = v957 + v951 && 1 <= v967 60.53/16.23 f_401(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_402(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_402(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_403(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_403(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_404(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_404(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_405(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_405(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_406(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: v967 <= v956 60.53/16.23 f_405(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_407(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: v956 < v967 && 2 <= v967 60.53/16.23 f_406(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_408(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_407(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_409(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v960, v961, v962, v963, v964, v965, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_408(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_410(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_409(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v960, v961, v962, v963, v964, v965, 3, 2, 4) -> f_411(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v960, v961, v962, v963, v964, v965, 3, 2, 4) :|: TRUE 60.53/16.23 f_410(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) -> f_398(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, v957, v967, v960, v961, v962, v963, v964, v965, 0, 3, 2, 4) :|: TRUE 60.53/16.23 f_411(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v960, v961, v962, v963, v964, v965, 3, 2, 4) -> f_412(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_412(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) -> f_413(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v1016, v961, v962, v963, v964, v965, 3, 2, 4) :|: v1016 = 1 + v956 && 2 <= v1016 60.53/16.23 f_413(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v1016, v961, v962, v963, v964, v965, 3, 2, 4) -> f_414(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v1016, v961, v962, v963, v964, v965, 3, 2, 4) :|: TRUE 60.53/16.23 f_414(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v1016, v961, v962, v963, v964, v965, 3, 2, 4) -> f_415(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v1016, v961, v962, v963, v964, v965, 3, 2, 4) :|: TRUE 60.53/16.23 f_415(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v956, v967, 0, v957, v1016, v961, v962, v963, v964, v965, 3, 2, 4) -> f_416(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_416(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) -> f_417(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) :|: 0 = 0 60.53/16.23 f_417(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) -> f_418(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: v1016 < v954 && 3 <= v954 60.53/16.23 f_417(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) -> f_419(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: v954 <= v1016 && v954 = v1016 60.53/16.23 f_418(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_420(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: 0 = 0 60.53/16.23 f_419(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_421(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, 0, v967, v956, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: 0 = 0 60.53/16.23 f_420(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_422(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: TRUE 60.53/16.23 f_421(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, 0, v967, v956, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_423(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, 0, v967, v956, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: TRUE 60.53/16.23 f_422(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_424(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: TRUE 60.53/16.23 f_423(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, 0, v967, v956, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_425(v946, v947, v948, v949, v950, v951, v952, v953, v1016, 1, 0, v967, v956, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: TRUE 60.53/16.23 f_424(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_426(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) :|: TRUE 60.53/16.23 f_426(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 4, 2) -> f_393(v946, v947, v948, v949, v950, v951, v952, v953, v954, 1, v1016, v967, v956, 0, v957, v961, v962, v963, v964, v965, 3, 2, 4) :|: TRUE 60.53/16.23 Combined rules. Obtained 8 rulesP rules: 60.53/16.23 f_123 -> f_184(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 > 0 && v17:0 < 2 && v17:0 > 0 60.53/16.23 f_123 -> f_405(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, v17:0, 1, 1, v11:0, 0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 0, 3, 2, 4) :|: v17:0 > 1 && v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 > 0 60.53/16.23 f_202(v66:0, v67:0, v68:0, v69:0, v70:0, v71:0, v72:0, v73:0, v74:0, 1, v76:0, 0, v78:0, v79:0, v80:0, v81:0, v82:0, 3, 2, 4) -> f_405(v66:0, v67:0, v68:0, v69:0, v70:0, v71:0, v72:0, v73:0, v74:0, 1, 1, v76:0 + v71:0, v76:0, 0, v78:0, v79:0, v80:0, v81:0, v82:0, 0, 3, 2, 4) :|: v76:0 + v71:0 > 0 60.53/16.23 f_123 -> f_144(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, v17:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 < 1 60.53/16.23 f_405(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, v954:0, 1, v956:0, v967:0, v957:0, v960:0, v961:0, v962:0, v963:0, v964:0, v965:0, 0, 3, 2, 4) -> f_405(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, v954:0, 1, 1 + v956:0, v951:0, 0, v956:0, v961:0, v962:0, v963:0, v964:0, v965:0, 0, 3, 2, 4) :|: v967:0 > 1 && v967:0 > v956:0 && v956:0 > 0 && v951:0 > 0 && v954:0 > 1 + v956:0 && v954:0 > 2 60.53/16.23 f_123 -> f_156(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, v17:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v17:0 < 1 && v11:0 > 0 60.53/16.23 f_405(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, 1 + v956:0, 1, v956:0, v967:0, v957:0, v960:0, v961:0, v962:0, v963:0, v964:0, v965:0, 0, 3, 2, 4) -> f_425(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, 1 + v956:0, 1, 0, v967:0, v956:0, v957:0, v961:0, v962:0, v963:0, v964:0, v965:0, 3, 4, 2) :|: v967:0 > 1 && v956:0 > 0 && v967:0 > v956:0 60.53/16.23 f_405(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, v954:0, 1, v956:0, v967:0, v957:0, v960:0, v961:0, v962:0, v963:0, v964:0, v965:0, 0, 3, 2, 4) -> f_405(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, v954:0, 1, v956:0, v967:0 + v951:0, v967:0, v960:0, v961:0, v962:0, v963:0, v964:0, v965:0, 0, 3, 2, 4) :|: v967:0 <= v956:0 && v967:0 + v951:0 > 0 60.53/16.23 Filtered unneeded arguments: 60.53/16.23 f_202(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_202(x6, x9, x11) 60.53/16.23 f_405(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_405(x6, x9, x11, x12) 60.53/16.23 Removed division, modulo operations, cleaned up constraints. Obtained 8 rules.P rules: 60.53/16.23 f_123 -> f_184(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v11:0 > 0 && v9:0 > 0 60.53/16.23 f_123 -> f_405(v11:0, v17:0, 1, v11:0) :|: v17:0 > 1 && v11:0 > 0 60.53/16.23 f_202(v71:0, v74:0, v76:0) -> f_405(v71:0, v74:0, 1, v76:0 + v71:0) :|: v76:0 + v71:0 > 0 60.53/16.23 f_123 -> f_144(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, v17:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 1, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v11:0 < 1 && v9:0 > 0 60.53/16.23 f_405(v951:0, v954:0, v956:0, v967:0) -> f_405(v951:0, v954:0, 1 + v956:0, v951:0) :|: v967:0 > v956:0 && v967:0 > 1 && v956:0 > 0 && v951:0 > 0 && v954:0 > 2 && v954:0 > 1 + v956:0 60.53/16.23 f_123 -> f_156(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, v17:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 > 0 && v17:0 < 1 60.53/16.23 f_405(v951:0, sum~cons_1~v956:0, v956:0, v967:0) -> f_425(v946:0, v947:0, v948:0, v949:0, v950:0, v951:0, v952:0, v953:0, 1 + v956:0, 1, 0, v967:0, v956:0, v957:0, v961:0, v962:0, v963:0, v964:0, v965:0, 3, 4, 2) :|: v956:0 > 0 && v967:0 > v956:0 && v967:0 > 1 && sum~cons_1~v956:0 = 1 + v956:0 60.53/16.23 f_405(v951:0, v954:0, v956:0, v967:0) -> f_405(v951:0, v954:0, v956:0, v967:0 + v951:0) :|: v967:0 <= v956:0 && v967:0 + v951:0 > 0 60.53/16.23 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (6) 60.53/16.23 Obligation: 60.53/16.23 Rules: 60.53/16.23 f_123 -> f_184(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v11:0 > 0 && v9:0 > 0 60.53/16.23 f_123 -> f_405(x, x1, 1, x) :|: x1 > 1 && x > 0 60.53/16.23 f_202(v71:0, v74:0, v76:0) -> f_405(v71:0, v74:0, 1, v76:0 + v71:0) :|: v76:0 + v71:0 > 0 60.53/16.23 f_123 -> f_144(x2, x3, x4, x5, x6, x7, x8, x9, x10, 0, 3 + x2, 3 + x3, 3 + x4, 3 + x5, 3 + x6, 3, 1, 4) :|: x2 > 0 && x3 > 0 && x4 > 0 && x5 > 0 && x7 < 1 && x6 > 0 60.53/16.23 f_405(v951:0, v954:0, v956:0, v967:0) -> f_405(v951:0, v954:0, 1 + v956:0, v951:0) :|: v967:0 > v956:0 && v967:0 > 1 && v956:0 > 0 && v951:0 > 0 && v954:0 > 2 && v954:0 > 1 + v956:0 60.53/16.23 f_123 -> f_156(x11, x12, x13, x14, x15, x16, x17, x18, x19, 1, 0, 3 + x11, 3 + x12, 3 + x13, 3 + x14, 3 + x15, 3, 4) :|: x11 > 0 && x12 > 0 && x13 > 0 && x14 > 0 && x15 > 0 && x16 > 0 && x19 < 1 60.53/16.23 f_405(x20, x21, x22, x23) -> f_425(x24, x25, x26, x27, x28, x20, x29, x30, 1 + x22, 1, 0, x23, x22, x31, x32, x33, x34, x35, x36, 3, 4, 2) :|: x22 > 0 && x23 > x22 && x23 > 1 && x21 = 1 + x22 60.53/16.23 f_405(x37, x38, x39, x40) -> f_405(x37, x38, x39, x40 + x37) :|: x40 <= x39 && x40 + x37 > 0 60.53/16.23 Start term: f_123 60.53/16.23 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (7) IRS2T2 (EQUIVALENT) 60.53/16.23 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 60.53/16.23 60.53/16.23 (f_123_22,1) 60.53/16.23 (f_184_22,2) 60.53/16.23 (f_405_22,3) 60.53/16.23 (f_202_22,4) 60.53/16.23 (f_144_22,5) 60.53/16.23 (f_156_22,6) 60.53/16.23 (f_425_22,7) 60.53/16.23 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (8) 60.53/16.23 Obligation: 60.53/16.23 START: 1; 60.53/16.23 60.53/16.23 FROM: 1; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX27 > 0 && oldX26 > 0); 60.53/16.23 x0 := oldX22; 60.53/16.23 x1 := oldX23; 60.53/16.23 x2 := oldX24; 60.53/16.23 x3 := oldX25; 60.53/16.23 x4 := oldX26; 60.53/16.23 x5 := oldX27; 60.53/16.23 x6 := oldX28; 60.53/16.23 x7 := oldX29; 60.53/16.23 x8 := 1; 60.53/16.23 x9 := 0; 60.53/16.23 x10 := 3 + oldX22; 60.53/16.23 x11 := 3 + oldX23; 60.53/16.23 x12 := 3 + oldX24; 60.53/16.23 x13 := 3 + oldX25; 60.53/16.23 x14 := 3 + oldX26; 60.53/16.23 x15 := 3; 60.53/16.23 x16 := 4; 60.53/16.23 x17 := oldX30; 60.53/16.23 x18 := oldX31; 60.53/16.23 x19 := oldX32; 60.53/16.23 x20 := oldX33; 60.53/16.23 x21 := oldX34; 60.53/16.23 TO: 2; 60.53/16.23 60.53/16.23 FROM: 1; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 oldX35 := nondet(); 60.53/16.23 oldX36 := nondet(); 60.53/16.23 oldX37 := nondet(); 60.53/16.23 oldX38 := nondet(); 60.53/16.23 oldX39 := nondet(); 60.53/16.23 oldX40 := nondet(); 60.53/16.23 oldX41 := nondet(); 60.53/16.23 assume(oldX23 > 1 && oldX22 > 0); 60.53/16.23 x0 := oldX22; 60.53/16.23 x1 := oldX23; 60.53/16.23 x2 := 1; 60.53/16.23 x3 := oldX22; 60.53/16.23 x4 := oldX24; 60.53/16.23 x5 := oldX25; 60.53/16.23 x6 := oldX26; 60.53/16.23 x7 := oldX27; 60.53/16.23 x8 := oldX28; 60.53/16.23 x9 := oldX29; 60.53/16.23 x10 := oldX30; 60.53/16.23 x11 := oldX31; 60.53/16.23 x12 := oldX32; 60.53/16.23 x13 := oldX33; 60.53/16.23 x14 := oldX34; 60.53/16.23 x15 := oldX35; 60.53/16.23 x16 := oldX36; 60.53/16.23 x17 := oldX37; 60.53/16.23 x18 := oldX38; 60.53/16.23 x19 := oldX39; 60.53/16.23 x20 := oldX40; 60.53/16.23 x21 := oldX41; 60.53/16.23 TO: 3; 60.53/16.23 60.53/16.23 FROM: 4; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 oldX35 := nondet(); 60.53/16.23 oldX36 := nondet(); 60.53/16.23 oldX37 := nondet(); 60.53/16.23 oldX38 := nondet(); 60.53/16.23 oldX39 := nondet(); 60.53/16.23 assume(oldX2 + oldX0 > 0); 60.53/16.23 x0 := oldX0; 60.53/16.23 x1 := oldX1; 60.53/16.23 x2 := 1; 60.53/16.23 x3 := oldX2 + oldX0; 60.53/16.23 x4 := oldX22; 60.53/16.23 x5 := oldX23; 60.53/16.23 x6 := oldX24; 60.53/16.23 x7 := oldX25; 60.53/16.23 x8 := oldX26; 60.53/16.23 x9 := oldX27; 60.53/16.23 x10 := oldX28; 60.53/16.23 x11 := oldX29; 60.53/16.23 x12 := oldX30; 60.53/16.23 x13 := oldX31; 60.53/16.23 x14 := oldX32; 60.53/16.23 x15 := oldX33; 60.53/16.23 x16 := oldX34; 60.53/16.23 x17 := oldX35; 60.53/16.23 x18 := oldX36; 60.53/16.23 x19 := oldX37; 60.53/16.23 x20 := oldX38; 60.53/16.23 x21 := oldX39; 60.53/16.23 TO: 3; 60.53/16.23 60.53/16.23 FROM: 1; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX27 < 1 && oldX26 > 0); 60.53/16.23 x0 := oldX22; 60.53/16.23 x1 := oldX23; 60.53/16.23 x2 := oldX24; 60.53/16.23 x3 := oldX25; 60.53/16.23 x4 := oldX26; 60.53/16.23 x5 := oldX27; 60.53/16.23 x6 := oldX28; 60.53/16.23 x7 := oldX29; 60.53/16.23 x8 := oldX30; 60.53/16.23 x9 := 0; 60.53/16.23 x10 := 3 + oldX22; 60.53/16.23 x11 := 3 + oldX23; 60.53/16.23 x12 := 3 + oldX24; 60.53/16.23 x13 := 3 + oldX25; 60.53/16.23 x14 := 3 + oldX26; 60.53/16.23 x15 := 3; 60.53/16.23 x16 := 1; 60.53/16.23 x17 := 4; 60.53/16.23 x18 := oldX31; 60.53/16.23 x19 := oldX32; 60.53/16.23 x20 := oldX33; 60.53/16.23 x21 := oldX34; 60.53/16.23 TO: 5; 60.53/16.23 60.53/16.23 FROM: 3; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 oldX35 := nondet(); 60.53/16.23 oldX36 := nondet(); 60.53/16.23 oldX37 := nondet(); 60.53/16.23 oldX38 := nondet(); 60.53/16.23 oldX39 := nondet(); 60.53/16.23 assume(oldX3 > oldX2 && oldX3 > 1 && oldX2 > 0 && oldX0 > 0 && oldX1 > 2 && oldX1 > 1 + oldX2); 60.53/16.23 x0 := oldX0; 60.53/16.23 x1 := oldX1; 60.53/16.23 x2 := 1 + oldX2; 60.53/16.23 x3 := oldX0; 60.53/16.23 x4 := oldX22; 60.53/16.23 x5 := oldX23; 60.53/16.23 x6 := oldX24; 60.53/16.23 x7 := oldX25; 60.53/16.23 x8 := oldX26; 60.53/16.23 x9 := oldX27; 60.53/16.23 x10 := oldX28; 60.53/16.23 x11 := oldX29; 60.53/16.23 x12 := oldX30; 60.53/16.23 x13 := oldX31; 60.53/16.23 x14 := oldX32; 60.53/16.23 x15 := oldX33; 60.53/16.23 x16 := oldX34; 60.53/16.23 x17 := oldX35; 60.53/16.23 x18 := oldX36; 60.53/16.23 x19 := oldX37; 60.53/16.23 x20 := oldX38; 60.53/16.23 x21 := oldX39; 60.53/16.23 TO: 3; 60.53/16.23 60.53/16.23 FROM: 1; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX26 > 0 && oldX27 > 0 && oldX30 < 1); 60.53/16.23 x0 := oldX22; 60.53/16.23 x1 := oldX23; 60.53/16.23 x2 := oldX24; 60.53/16.23 x3 := oldX25; 60.53/16.23 x4 := oldX26; 60.53/16.23 x5 := oldX27; 60.53/16.23 x6 := oldX28; 60.53/16.23 x7 := oldX29; 60.53/16.23 x8 := oldX30; 60.53/16.23 x9 := 1; 60.53/16.23 x10 := 0; 60.53/16.23 x11 := 3 + oldX22; 60.53/16.23 x12 := 3 + oldX23; 60.53/16.23 x13 := 3 + oldX24; 60.53/16.23 x14 := 3 + oldX25; 60.53/16.23 x15 := 3 + oldX26; 60.53/16.23 x16 := 3; 60.53/16.23 x17 := 4; 60.53/16.23 x18 := oldX31; 60.53/16.23 x19 := oldX32; 60.53/16.23 x20 := oldX33; 60.53/16.23 x21 := oldX34; 60.53/16.23 TO: 6; 60.53/16.23 60.53/16.23 FROM: 3; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 assume(oldX2 > 0 && oldX3 > oldX2 && oldX3 > 1 && oldX1 = 1 + oldX2); 60.53/16.23 x0 := oldX22; 60.53/16.23 x1 := oldX23; 60.53/16.23 x2 := oldX24; 60.53/16.23 x3 := oldX25; 60.53/16.23 x4 := oldX26; 60.53/16.23 x5 := oldX0; 60.53/16.23 x6 := oldX27; 60.53/16.23 x7 := oldX28; 60.53/16.23 x8 := 1 + oldX2; 60.53/16.23 x9 := 1; 60.53/16.23 x10 := 0; 60.53/16.23 x11 := oldX3; 60.53/16.23 x12 := oldX2; 60.53/16.23 x13 := oldX29; 60.53/16.23 x14 := oldX30; 60.53/16.23 x15 := oldX31; 60.53/16.23 x16 := oldX32; 60.53/16.23 x17 := oldX33; 60.53/16.23 x18 := oldX34; 60.53/16.23 x19 := 3; 60.53/16.23 x20 := 4; 60.53/16.23 x21 := 2; 60.53/16.23 TO: 7; 60.53/16.23 60.53/16.23 FROM: 3; 60.53/16.23 oldX0 := x0; 60.53/16.23 oldX1 := x1; 60.53/16.23 oldX2 := x2; 60.53/16.23 oldX3 := x3; 60.53/16.23 oldX4 := x4; 60.53/16.23 oldX5 := x5; 60.53/16.23 oldX6 := x6; 60.53/16.23 oldX7 := x7; 60.53/16.23 oldX8 := x8; 60.53/16.23 oldX9 := x9; 60.53/16.23 oldX10 := x10; 60.53/16.23 oldX11 := x11; 60.53/16.23 oldX12 := x12; 60.53/16.23 oldX13 := x13; 60.53/16.23 oldX14 := x14; 60.53/16.23 oldX15 := x15; 60.53/16.23 oldX16 := x16; 60.53/16.23 oldX17 := x17; 60.53/16.23 oldX18 := x18; 60.53/16.23 oldX19 := x19; 60.53/16.23 oldX20 := x20; 60.53/16.23 oldX21 := x21; 60.53/16.23 oldX22 := nondet(); 60.53/16.23 oldX23 := nondet(); 60.53/16.23 oldX24 := nondet(); 60.53/16.23 oldX25 := nondet(); 60.53/16.23 oldX26 := nondet(); 60.53/16.23 oldX27 := nondet(); 60.53/16.23 oldX28 := nondet(); 60.53/16.23 oldX29 := nondet(); 60.53/16.23 oldX30 := nondet(); 60.53/16.23 oldX31 := nondet(); 60.53/16.23 oldX32 := nondet(); 60.53/16.23 oldX33 := nondet(); 60.53/16.23 oldX34 := nondet(); 60.53/16.23 oldX35 := nondet(); 60.53/16.23 oldX36 := nondet(); 60.53/16.23 oldX37 := nondet(); 60.53/16.23 oldX38 := nondet(); 60.53/16.23 oldX39 := nondet(); 60.53/16.23 assume(oldX3 <= oldX2 && oldX3 + oldX0 > 0); 60.53/16.23 x0 := oldX0; 60.53/16.23 x1 := oldX1; 60.53/16.23 x2 := oldX2; 60.53/16.23 x3 := oldX3 + oldX0; 60.53/16.23 x4 := oldX22; 60.53/16.23 x5 := oldX23; 60.53/16.23 x6 := oldX24; 60.53/16.23 x7 := oldX25; 60.53/16.23 x8 := oldX26; 60.53/16.23 x9 := oldX27; 60.53/16.23 x10 := oldX28; 60.53/16.23 x11 := oldX29; 60.53/16.23 x12 := oldX30; 60.53/16.23 x13 := oldX31; 60.53/16.23 x14 := oldX32; 60.53/16.23 x15 := oldX33; 60.53/16.23 x16 := oldX34; 60.53/16.23 x17 := oldX35; 60.53/16.23 x18 := oldX36; 60.53/16.23 x19 := oldX37; 60.53/16.23 x20 := oldX38; 60.53/16.23 x21 := oldX39; 60.53/16.23 TO: 3; 60.53/16.23 60.53/16.23 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (9) T2 (EQUIVALENT) 60.53/16.23 Initially, performed program simplifications using lexicographic rank functions: 60.53/16.23 * Removed transitions 8, 12, 13 using the following rank functions: 60.53/16.23 - Rank function 1: 60.53/16.23 RF for loc. 10: 3*x1-2*x2 60.53/16.23 RF for loc. 11: 3*x1-2*x2 60.53/16.23 Bound for (chained) transitions 12: 7 60.53/16.23 - Rank function 2: 60.53/16.23 RF for loc. 10: 1+2*x2-2*x3 60.53/16.23 RF for loc. 11: 2*x2-2*x3 60.53/16.23 Bound for (chained) transitions 13: 0 60.53/16.23 - Rank function 3: 60.53/16.23 RF for loc. 10: 1 60.53/16.23 RF for loc. 11: 0 60.53/16.23 Bound for (chained) transitions 8: 1 60.53/16.23 60.53/16.23 ---------------------------------------- 60.53/16.23 60.53/16.23 (10) 60.53/16.23 YES 61.26/19.56 EOF