YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 156 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 9181 ms] (4) LLVM Symbolic Execution Graph (5) SEGraph to IRS [EQUIVALENT, 208 ms] (6) IntTRS (7) IRS2T2 [EQUIVALENT, 0 ms] (8) T2IntSys (9) T2 [EQUIVALENT, 1285 ms] (10) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %k = alloca i32, align 4 %i = alloca i32, align 4 %j = alloca i32, align 4 %n = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %k %3 = call i32 @__VERIFIER_nondet_int() store %3, %i %4 = call i32 @__VERIFIER_nondet_int() store %4, %j %5 = call i32 @__VERIFIER_nondet_int() store %5, %n %6 = load %k %7 = icmp sge %6 1 br %7, %8, %26 8: store 0, %i br %9 9: %10 = load %i %11 = load %n %12 = icmp slt %10 %11 br %12, %13, %25 13: store 0, %j br %14 14: %15 = load %j %16 = load %i %17 = icmp sle %15 %16 br %17, %18, %22 18: %19 = load %j %20 = load %k %21 = add %19 %20 store %21, %j br %14 22: %23 = load %i %24 = add %23 1 store %24, %i br %9 25: br %26 26: ret 0 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SEGraph to IRS (EQUIVALENT) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 109 rulesP rules: f_123 -> f_124(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_124(v1, v2, 3, 1, 4) -> f_125(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 8 rulesP rules: 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 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 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 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 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 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 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 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 Filtered unneeded arguments: 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) 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) Removed division, modulo operations, cleaned up constraints. Obtained 8 rules.P rules: 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 f_123 -> f_405(v11:0, v17:0, 1, v11:0) :|: v17:0 > 1 && v11:0 > 0 f_202(v71:0, v74:0, v76:0) -> f_405(v71:0, v74:0, 1, v76:0 + v71:0) :|: v76:0 + v71:0 > 0 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 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 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 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 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 ---------------------------------------- (6) Obligation: Rules: 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 f_123 -> f_405(x, x1, 1, x) :|: x1 > 1 && x > 0 f_202(v71:0, v74:0, v76:0) -> f_405(v71:0, v74:0, 1, v76:0 + v71:0) :|: v76:0 + v71:0 > 0 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 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 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 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 f_405(x37, x38, x39, x40) -> f_405(x37, x38, x39, x40 + x37) :|: x40 <= x39 && x40 + x37 > 0 Start term: f_123 ---------------------------------------- (7) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_123_22,1) (f_184_22,2) (f_405_22,3) (f_202_22,4) (f_144_22,5) (f_156_22,6) (f_425_22,7) ---------------------------------------- (8) Obligation: START: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX27 > 0 && oldX26 > 0); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := oldX29; x8 := 1; x9 := 0; x10 := 3 + oldX22; x11 := 3 + oldX23; x12 := 3 + oldX24; x13 := 3 + oldX25; x14 := 3 + oldX26; x15 := 3; x16 := 4; x17 := oldX30; x18 := oldX31; x19 := oldX32; x20 := oldX33; x21 := oldX34; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(oldX23 > 1 && oldX22 > 0); x0 := oldX22; x1 := oldX23; x2 := 1; x3 := oldX22; x4 := oldX24; x5 := oldX25; x6 := oldX26; x7 := oldX27; x8 := oldX28; x9 := oldX29; x10 := oldX30; x11 := oldX31; x12 := oldX32; x13 := oldX33; x14 := oldX34; x15 := oldX35; x16 := oldX36; x17 := oldX37; x18 := oldX38; x19 := oldX39; x20 := oldX40; x21 := oldX41; TO: 3; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); assume(oldX2 + oldX0 > 0); x0 := oldX0; x1 := oldX1; x2 := 1; x3 := oldX2 + oldX0; x4 := oldX22; x5 := oldX23; x6 := oldX24; x7 := oldX25; x8 := oldX26; x9 := oldX27; x10 := oldX28; x11 := oldX29; x12 := oldX30; x13 := oldX31; x14 := oldX32; x15 := oldX33; x16 := oldX34; x17 := oldX35; x18 := oldX36; x19 := oldX37; x20 := oldX38; x21 := oldX39; TO: 3; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX27 < 1 && oldX26 > 0); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := oldX29; x8 := oldX30; x9 := 0; x10 := 3 + oldX22; x11 := 3 + oldX23; x12 := 3 + oldX24; x13 := 3 + oldX25; x14 := 3 + oldX26; x15 := 3; x16 := 1; x17 := 4; x18 := oldX31; x19 := oldX32; x20 := oldX33; x21 := oldX34; TO: 5; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); assume(oldX3 > oldX2 && oldX3 > 1 && oldX2 > 0 && oldX0 > 0 && oldX1 > 2 && oldX1 > 1 + oldX2); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX0; x4 := oldX22; x5 := oldX23; x6 := oldX24; x7 := oldX25; x8 := oldX26; x9 := oldX27; x10 := oldX28; x11 := oldX29; x12 := oldX30; x13 := oldX31; x14 := oldX32; x15 := oldX33; x16 := oldX34; x17 := oldX35; x18 := oldX36; x19 := oldX37; x20 := oldX38; x21 := oldX39; TO: 3; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX26 > 0 && oldX27 > 0 && oldX30 < 1); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := oldX29; x8 := oldX30; x9 := 1; x10 := 0; x11 := 3 + oldX22; x12 := 3 + oldX23; x13 := 3 + oldX24; x14 := 3 + oldX25; x15 := 3 + oldX26; x16 := 3; x17 := 4; x18 := oldX31; x19 := oldX32; x20 := oldX33; x21 := oldX34; TO: 6; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); assume(oldX2 > 0 && oldX3 > oldX2 && oldX3 > 1 && oldX1 = 1 + oldX2); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX0; x6 := oldX27; x7 := oldX28; x8 := 1 + oldX2; x9 := 1; x10 := 0; x11 := oldX3; x12 := oldX2; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; x18 := oldX34; x19 := 3; x20 := 4; x21 := 2; TO: 7; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); assume(oldX3 <= oldX2 && oldX3 + oldX0 > 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3 + oldX0; x4 := oldX22; x5 := oldX23; x6 := oldX24; x7 := oldX25; x8 := oldX26; x9 := oldX27; x10 := oldX28; x11 := oldX29; x12 := oldX30; x13 := oldX31; x14 := oldX32; x15 := oldX33; x16 := oldX34; x17 := oldX35; x18 := oldX36; x19 := oldX37; x20 := oldX38; x21 := oldX39; TO: 3; ---------------------------------------- (9) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 8, 12, 13 using the following rank functions: - Rank function 1: RF for loc. 10: 3*x1-2*x2 RF for loc. 11: 3*x1-2*x2 Bound for (chained) transitions 12: 7 - Rank function 2: RF for loc. 10: 1+2*x2-2*x3 RF for loc. 11: 2*x2-2*x3 Bound for (chained) transitions 13: 0 - Rank function 3: RF for loc. 10: 1 RF for loc. 11: 0 Bound for (chained) transitions 8: 1 ---------------------------------------- (10) YES