5.50/2.44 MAYBE 5.50/2.45 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 5.50/2.45 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.50/2.45 5.50/2.45 5.50/2.45 Termination of the given C Problem could not be shown: 5.50/2.45 5.50/2.45 (0) C Problem 5.50/2.45 (1) CToLLVMProof [EQUIVALENT, 170 ms] 5.50/2.45 (2) LLVM problem 5.50/2.45 5.50/2.45 5.50/2.45 ---------------------------------------- 5.50/2.45 5.50/2.45 (0) 5.50/2.45 Obligation: 5.50/2.45 c file /export/starexec/sandbox/benchmark/theBenchmark.c 5.50/2.45 ---------------------------------------- 5.50/2.45 5.50/2.45 (1) CToLLVMProof (EQUIVALENT) 5.50/2.45 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 5.50/2.45 ---------------------------------------- 5.50/2.45 5.50/2.45 (2) 5.50/2.45 Obligation: 5.50/2.45 LLVM Problem 5.50/2.45 5.50/2.45 Aliases: 5.50/2.45 5.50/2.45 Data layout: 5.50/2.45 5.50/2.45 "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" 5.50/2.45 5.50/2.45 Machine: 5.50/2.45 5.50/2.45 "x86_64-pc-linux-gnu" 5.50/2.45 5.50/2.45 Type definitions: 5.50/2.45 5.50/2.45 Global variables: 5.50/2.45 5.50/2.45 Function declarations and definitions: 5.50/2.45 5.50/2.45 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 5.50/2.45 *BasicFunctionTypename: "bubble" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (a *i32, N i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 5.50/2.45 0: 5.50/2.45 %1 = alloca *i32, align 8 5.50/2.45 %2 = alloca i32, align 4 5.50/2.45 %i = alloca i32, align 4 5.50/2.45 %j = alloca i32, align 4 5.50/2.45 %t = alloca i32, align 4 5.50/2.45 store %a, %1 5.50/2.45 store %N, %2 5.50/2.45 %3 = load %2 5.50/2.45 store %3, %i 5.50/2.45 br %4 5.50/2.45 4: 5.50/2.45 %5 = load %i 5.50/2.45 %6 = icmp sge %5 1 5.50/2.45 br %6, %7, %55 5.50/2.45 7: 5.50/2.45 store 2, %j 5.50/2.45 br %8 5.50/2.45 8: 5.50/2.45 %9 = load %j 5.50/2.45 %10 = load %i 5.50/2.45 %11 = icmp sle %9 %10 5.50/2.45 br %11, %12, %51 5.50/2.45 12: 5.50/2.45 %13 = load %j 5.50/2.45 %14 = sub %13 1 5.50/2.45 %15 = sext i32 %14 to i64 5.50/2.45 %16 = load %1 5.50/2.45 %17 = getelementptr %16, %15 5.50/2.45 %18 = load %17 5.50/2.45 %19 = load %j 5.50/2.45 %20 = sext i32 %19 to i64 5.50/2.45 %21 = load %1 5.50/2.45 %22 = getelementptr %21, %20 5.50/2.45 %23 = load %22 5.50/2.45 %24 = icmp sgt %18 %23 5.50/2.45 br %24, %25, %47 5.50/2.45 25: 5.50/2.45 %26 = load %j 5.50/2.45 %27 = sub %26 1 5.50/2.45 %28 = sext i32 %27 to i64 5.50/2.45 %29 = load %1 5.50/2.45 %30 = getelementptr %29, %28 5.50/2.45 %31 = load %30 5.50/2.45 store %31, %t 5.50/2.45 %32 = load %j 5.50/2.45 %33 = sext i32 %32 to i64 5.50/2.45 %34 = load %1 5.50/2.45 %35 = getelementptr %34, %33 5.50/2.45 %36 = load %35 5.50/2.45 %37 = load %j 5.50/2.45 %38 = sub %37 1 5.50/2.45 %39 = sext i32 %38 to i64 5.50/2.45 %40 = load %1 5.50/2.45 %41 = getelementptr %40, %39 5.50/2.45 store %36, %41 5.50/2.45 %42 = load %t 5.50/2.45 %43 = load %j 5.50/2.45 %44 = sext i32 %43 to i64 5.50/2.45 %45 = load %1 5.50/2.45 %46 = getelementptr %45, %44 5.50/2.45 store %42, %46 5.50/2.45 br %47 5.50/2.45 47: 5.50/2.45 br %48 5.50/2.45 48: 5.50/2.45 %49 = load %j 5.50/2.45 %50 = add %49 1 5.50/2.45 store %50, %j 5.50/2.45 br %8 5.50/2.45 51: 5.50/2.45 br %52 5.50/2.45 52: 5.50/2.45 %53 = load %i 5.50/2.45 %54 = add %53 -1 5.50/2.45 store %54, %i 5.50/2.45 br %4 5.50/2.45 55: 5.50/2.45 ret void 5.50/2.45 5.50/2.45 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 5.50/2.45 0: 5.50/2.45 %1 = alloca i32, align 4 5.50/2.45 %a = alloca *i32, align 8 5.50/2.45 %n = alloca i32, align 4 5.50/2.45 store 0, %1 5.50/2.45 %2 = call i32 @__VERIFIER_nondet_int() 5.50/2.45 store %2, %n 5.50/2.45 %3 = load %a 5.50/2.45 %4 = load %n 5.50/2.45 Unnamed Call-Instruction = call BasicVoidType @bubble(*i32 %3, i32 %4) 5.50/2.45 ret 0 5.50/2.45 5.50/2.45 5.50/2.45 Analyze Termination of all function calls matching the pattern: 5.60/2.45 main() 5.67/2.56 EOF