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