/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- NO proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be disproven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 139 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 660 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] (6) LLVM Symbolic Execution Lasso (7) Lasso2IRS [EQUIVALENT, 138 ms] (8) IntTRS (9) IRS2T2 [EQUIVALENT, 0 ms] (10) T2IntSys (11) T2 [COMPLETE, 1053 ms] (12) NO ---------------------------------------- (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: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %i = alloca i32, align 4 %j = alloca i32, align 4 %k = alloca i32, align 4 %l = alloca i32, align 4 %m = alloca i32, align 4 %a = alloca i32, align 4 %b = alloca i32, align 4 store 0, %1 store 0, %i br %2 2: %3 = load %i %4 = icmp slt %3 100 br %4, %5, %58 5: %6 = load %i %7 = add %6 2 store %7, %a store 0, %j br %8 8: %9 = load %j %10 = load %a %11 = icmp slt %9 %10 br %11, %12, %55 12: %13 = load %i %14 = load %j %15 = add %13 %14 %16 = add %15 3 store %16, %k br %17 17: %18 = load %k %19 = icmp sge %18 0 br %19, %20, %52 20: %21 = load %i %22 = load %j %23 = add %21 %22 %24 = load %k %25 = add %23 %24 %26 = add %25 4 store %26, %b store 0, %l br %27 27: %28 = load %l %29 = load %b %30 = icmp slt %28 %29 br %30, %31, %49 31: %32 = load %i %33 = load %j %34 = add %32 %33 %35 = load %k %36 = add %34 %35 %37 = load %l %38 = add %36 %37 %39 = add %38 1000 store %39, %m br %40 40: %41 = load %m %42 = icmp sge %41 0 br %42, %43, %46 43: %44 = load %m %45 = sub %44 0 store %45, %m br %40 46: %47 = load %l %48 = add %47 1 store %48, %l br %27 49: %50 = load %k %51 = sub %50 1 store %51, %k br %17 52: %53 = load %j %54 = add %53 1 store %54, %j br %8 55: %56 = load %i %57 = add %56 1 store %57, %i br %2 58: 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) SymbolicExecutionGraphToLassoProof (EQUIVALENT) Converted SEGraph to 1 independent lasso. ---------------------------------------- (6) Obligation: Lasso ---------------------------------------- (7) Lasso2IRS (EQUIVALENT) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 70 rulesP rules: f_302(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_303(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_303(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_304(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_304(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_305(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_305(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_306(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_306(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_307(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_307(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_308(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_308(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_301(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_301(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_302(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_239 -> f_240(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_240(v1, v2, 3, 1, 4) -> f_241(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_241(v1, v3, v2, v4, 3, 1, 4) -> f_242(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 f_242(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_243(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 f_243(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_244(v1, v3, v5, v7, v9, v2, v4, v6, v8, v10, 3, 1, 4) :|: 1 <= v9 && v10 = 3 + v9 && 4 <= v10 f_244(v1, v3, v5, v7, v9, v2, v4, v6, v8, v10, 3, 1, 4) -> f_245(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, v10, v12, 3, 1, 4) :|: 1 <= v11 && v12 = 3 + v11 && 4 <= v12 f_245(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, v10, v12, 3, 1, 4) -> f_246(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, v10, v12, v14, 3, 1, 4) :|: 1 <= v13 && v14 = 3 + v13 && 4 <= v14 f_246(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, v10, v12, v14, 3, 1, 4) -> f_247(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 3, 1, 4) :|: 1 <= v15 && v16 = 3 + v15 && 4 <= v16 f_247(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 3, 1, 4) -> f_248(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 0, 3, 1, 4) :|: TRUE f_248(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 0, 3, 1, 4) -> f_249(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 0, 3, 1, 4) :|: TRUE f_249(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 0, 3, 1, 4) -> f_250(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 0, 3, 1, 4) :|: TRUE f_250(v1, v3, v5, v7, v9, v11, v13, v15, v2, v4, v6, v8, v10, v12, v14, v16, 0, 3, 1, 4) -> f_251(v1, v3, v5, v7, v9, v11, v13, v15, 0, v2, v4, v6, v8, v10, v12, v14, v16, 3, 1, 4) :|: 0 = 0 f_251(v1, v3, v5, v7, v9, v11, v13, v15, 0, v2, v4, v6, v8, v10, v12, v14, v16, 3, 1, 4) -> f_252(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_252(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_253(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: TRUE f_253(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_254(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_254(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_255(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_255(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_256(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: TRUE f_256(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_257(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: TRUE f_257(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_258(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: TRUE f_258(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_259(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_259(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_260(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_260(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_261(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_261(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_262(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: TRUE f_262(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_263(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_263(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_264(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_264(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_265(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) :|: 0 = 0 f_265(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, v2, v4, v6, v8, v10, v12, v14, v16, 3, 4) -> f_266(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_266(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_267(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_267(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_268(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_268(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_269(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_269(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_270(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_270(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_271(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_271(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_272(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_272(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_273(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_273(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_274(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_274(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_275(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_275(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_276(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_276(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_277(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_277(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_278(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_278(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_279(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_279(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_280(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_280(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_281(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_281(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_282(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_282(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_283(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_283(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_284(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_284(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_285(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_285(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_286(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_286(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_287(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_287(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_288(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_288(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_289(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_289(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_290(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_290(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_291(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_291(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_292(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_292(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_293(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_293(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_294(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_294(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_295(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_295(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_296(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_296(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_297(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_297(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_298(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_298(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_299(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: 0 = 0 f_299(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_300(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE f_300(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) -> f_301(v1, v3, v5, v7, v9, v11, v13, v15, 0, 1, 2, 3, 7, 1003, v2, v4, v6, v8, v10, v12, v14, v16, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_239 -> f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 0, 1, 2, 3, 7, 1003, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3 + v11:0, 3 + v13:0, 3 + v15:0, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 > 0 && v13:0 > 0 && v15:0 > 0 f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 0, 1, 2, 3, 7, 1003, v2:0, v4:0, v6:0, v8:0, v10:0, v12:0, v14:0, v16:0, 4) -> f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 0, 1, 2, 3, 7, 1003, v2:0, v4:0, v6:0, v8:0, v10:0, v12:0, v14:0, v16:0, 4) :|: TRUE Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_239 -> f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 0, 1, 2, 3, 7, 1003, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3 + v11:0, 3 + v13:0, 3 + v15:0, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 > 0 && v15:0 > 0 && v13:0 > 0 f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, cons_0, cons_1, cons_2, cons_3, cons_7, cons_1003, v2:0, v4:0, v6:0, v8:0, v10:0, v12:0, v14:0, v16:0, cons_4) -> f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 0, 1, 2, 3, 7, 1003, v2:0, v4:0, v6:0, v8:0, v10:0, v12:0, v14:0, v16:0, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_2 = 2 && cons_3 = 3 && cons_7 = 7 && cons_1003 = 1003 && cons_4 = 4 ---------------------------------------- (8) Obligation: Rules: f_239 -> f_302(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, v15:0, 0, 1, 2, 3, 7, 1003, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3 + v9:0, 3 + v11:0, 3 + v13:0, 3 + v15:0, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > 0 && v11:0 > 0 && v15:0 > 0 && v13:0 > 0 f_302(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_302(x, x1, x2, x3, x4, x5, x6, x7, 0, 1, 2, 3, 7, 1003, x14, x15, x16, x17, x18, x19, x20, x21, 4) :|: TRUE && x8 = 0 && x9 = 1 && x10 = 2 && x11 = 3 && x12 = 7 && x13 = 1003 && x22 = 4 Start term: f_239 ---------------------------------------- (9) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_239_23,1) (f_302_23,2) ---------------------------------------- (10) 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 := x22; oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); assume(oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX26 > 0 && oldX27 > 0 && oldX28 > 0 && oldX30 > 0 && oldX29 > 0); x0 := oldX23; x1 := oldX24; x2 := oldX25; x3 := oldX26; x4 := oldX27; x5 := oldX28; x6 := oldX29; x7 := oldX30; x8 := 0; x9 := 1; x10 := 2; x11 := 3; x12 := 7; x13 := 1003; x14 := 3 + oldX23; x15 := 3 + oldX24; x16 := 3 + oldX25; x17 := 3 + oldX26; x18 := 3 + oldX27; x19 := 3 + oldX28; x20 := 3 + oldX29; x21 := 3 + oldX30; x22 := 4; TO: 2; FROM: 2; 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 := x22; assume(0 = 0 && oldX8 = 0 && oldX9 = 1 && oldX10 = 2 && oldX11 = 3 && oldX12 = 7 && oldX13 = 1003 && oldX22 = 4); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := oldX6; x7 := oldX7; x8 := 0; x9 := 1; x10 := 2; x11 := 3; x12 := 7; x13 := 1003; x14 := oldX14; x15 := oldX15; x16 := oldX16; x17 := oldX17; x18 := oldX18; x19 := oldX19; x20 := oldX20; x21 := oldX21; x22 := 4; TO: 2; ---------------------------------------- (11) T2 (COMPLETE) Found this recurrent set for cutpoint 5: oldX23 == 1 and oldX24 == 1 and oldX25 == 1 and oldX26 == 1 and oldX27 == 1 and oldX28 == 1 and oldX29 == 1 and oldX30 == 1 and x10 == 2 and x11 == 3 and x12 == 7 and x13 == 1003 and x22 == 4 and x8 == 0 and x9 == 1 ---------------------------------------- (12) NO