7.74/3.06 MAYBE 7.74/3.07 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 7.74/3.07 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 7.74/3.07 7.74/3.07 7.74/3.07 Termination of the given C Problem could not be shown: 7.74/3.07 7.74/3.07 (0) C Problem 7.74/3.07 (1) CToLLVMProof [EQUIVALENT, 171 ms] 7.74/3.07 (2) LLVM problem 7.74/3.07 7.74/3.07 7.74/3.07 ---------------------------------------- 7.74/3.07 7.74/3.07 (0) 7.74/3.07 Obligation: 7.74/3.07 c file /export/starexec/sandbox/benchmark/theBenchmark.c 7.74/3.07 ---------------------------------------- 7.74/3.07 7.74/3.07 (1) CToLLVMProof (EQUIVALENT) 7.74/3.07 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 7.74/3.07 ---------------------------------------- 7.74/3.07 7.74/3.07 (2) 7.74/3.07 Obligation: 7.74/3.07 LLVM Problem 7.74/3.07 7.74/3.07 Aliases: 7.74/3.07 7.74/3.07 Data layout: 7.74/3.07 7.74/3.07 "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" 7.74/3.07 7.74/3.07 Machine: 7.74/3.07 7.74/3.07 "x86_64-pc-linux-gnu" 7.74/3.07 7.74/3.07 Type definitions: 7.74/3.07 7.74/3.07 Global variables: 7.74/3.07 7.74/3.07 Function declarations and definitions: 7.74/3.07 7.74/3.07 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 7.74/3.07 *BasicFunctionTypename: "knapsack" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (size *i32, val *i32, N i32, cost *i32, best *i32, M i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 7.74/3.07 0: 7.74/3.07 %1 = alloca *i32, align 8 7.74/3.07 %2 = alloca *i32, align 8 7.74/3.07 %3 = alloca i32, align 4 7.74/3.07 %4 = alloca *i32, align 8 7.74/3.07 %5 = alloca *i32, align 8 7.74/3.07 %6 = alloca i32, align 4 7.74/3.07 %i = alloca i32, align 4 7.74/3.07 %j = alloca i32, align 4 7.74/3.07 store %size, %1 7.74/3.07 store %val, %2 7.74/3.07 store %N, %3 7.74/3.07 store %cost, %4 7.74/3.07 store %best, %5 7.74/3.07 store %M, %6 7.74/3.07 store 1, %j 7.74/3.07 br %7 7.74/3.07 7: 7.74/3.07 %8 = load %j 7.74/3.07 %9 = load %3 7.74/3.07 %10 = icmp sle %8 %9 7.74/3.07 br %10, %11, %84 7.74/3.07 11: 7.74/3.07 store 1, %i 7.74/3.07 br %12 7.74/3.07 12: 7.74/3.07 %13 = load %i 7.74/3.07 %14 = load %6 7.74/3.07 %15 = icmp sle %13 %14 7.74/3.07 br %15, %16, %80 7.74/3.07 16: 7.74/3.07 %17 = load %i 7.74/3.07 %18 = load %j 7.74/3.07 %19 = sext i32 %18 to i64 7.74/3.07 %20 = load %1 7.74/3.07 %21 = getelementptr %20, %19 7.74/3.07 %22 = load %21 7.74/3.07 %23 = icmp sge %17 %22 7.74/3.07 br %23, %24, %76 7.74/3.07 24: 7.74/3.07 %25 = load %i 7.74/3.07 %26 = sext i32 %25 to i64 7.74/3.07 %27 = load %4 7.74/3.07 %28 = getelementptr %27, %26 7.74/3.07 %29 = load %28 7.74/3.07 %30 = load %i 7.74/3.07 %31 = load %j 7.74/3.07 %32 = sext i32 %31 to i64 7.74/3.07 %33 = load %1 7.74/3.07 %34 = getelementptr %33, %32 7.74/3.07 %35 = load %34 7.74/3.07 %36 = sub %30 %35 7.74/3.07 %37 = sext i32 %36 to i64 7.74/3.07 %38 = load %4 7.74/3.07 %39 = getelementptr %38, %37 7.74/3.07 %40 = load %39 7.74/3.07 %41 = load %j 7.74/3.07 %42 = sext i32 %41 to i64 7.74/3.07 %43 = load %2 7.74/3.07 %44 = getelementptr %43, %42 7.74/3.07 %45 = load %44 7.74/3.07 %46 = add %40 %45 7.74/3.07 %47 = icmp slt %29 %46 7.74/3.07 br %47, %48, %75 7.74/3.07 48: 7.74/3.07 %49 = load %i 7.74/3.07 %50 = load %j 7.74/3.07 %51 = sext i32 %50 to i64 7.74/3.07 %52 = load %1 7.74/3.07 %53 = getelementptr %52, %51 7.74/3.07 %54 = load %53 7.74/3.07 %55 = sub %49 %54 7.74/3.07 %56 = sext i32 %55 to i64 7.74/3.07 %57 = load %4 7.74/3.07 %58 = getelementptr %57, %56 7.74/3.07 %59 = load %58 7.74/3.07 %60 = load %j 7.74/3.07 %61 = sext i32 %60 to i64 7.74/3.07 %62 = load %2 7.74/3.07 %63 = getelementptr %62, %61 7.74/3.07 %64 = load %63 7.74/3.07 %65 = add %59 %64 7.74/3.07 %66 = load %i 7.74/3.07 %67 = sext i32 %66 to i64 7.74/3.07 %68 = load %4 7.74/3.07 %69 = getelementptr %68, %67 7.74/3.07 store %65, %69 7.74/3.07 %70 = load %j 7.74/3.07 %71 = load %i 7.74/3.07 %72 = sext i32 %71 to i64 7.74/3.07 %73 = load %5 7.74/3.07 %74 = getelementptr %73, %72 7.74/3.07 store %70, %74 7.74/3.07 br %75 7.74/3.07 75: 7.74/3.07 br %76 7.74/3.07 76: 7.74/3.07 br %77 7.74/3.07 77: 7.74/3.07 %78 = load %i 7.74/3.07 %79 = add %78 1 7.74/3.07 store %79, %i 7.74/3.07 br %12 7.74/3.07 80: 7.74/3.07 br %81 7.74/3.07 81: 7.74/3.07 %82 = load %j 7.74/3.07 %83 = add %82 1 7.74/3.07 store %83, %j 7.74/3.07 br %7 7.74/3.07 84: 7.74/3.07 ret void 7.74/3.07 7.74/3.07 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 7.74/3.07 0: 7.74/3.07 %1 = alloca i32, align 4 7.74/3.07 %size = alloca *i32, align 8 7.74/3.07 %val = alloca *i32, align 8 7.74/3.07 %N = alloca i32, align 4 7.74/3.07 %cost = alloca *i32, align 8 7.74/3.07 %best = alloca *i32, align 8 7.74/3.07 %M = alloca i32, align 4 7.74/3.07 store 0, %1 7.74/3.07 %2 = call i32 @__VERIFIER_nondet_int() 7.74/3.07 store %2, %N 7.74/3.07 %3 = call i32 @__VERIFIER_nondet_int() 7.74/3.07 store %3, %M 7.74/3.07 %4 = load %size 7.74/3.07 %5 = load %val 7.74/3.07 %6 = load %N 7.74/3.07 %7 = load %cost 7.74/3.07 %8 = load %best 7.74/3.07 %9 = load %M 7.74/3.07 Unnamed Call-Instruction = call BasicVoidType @knapsack(*i32 %4, *i32 %5, i32 %6, *i32 %7, *i32 %8, i32 %9) 7.74/3.07 ret 0 7.74/3.07 7.74/3.07 7.74/3.07 Analyze Termination of all function calls matching the pattern: 7.74/3.07 main() 7.98/3.13 EOF