/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could not be shown: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 174 ms] (2) LLVM problem ---------------------------------------- (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: "lis" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (a *i32, N i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i32, align 8 %2 = alloca i32, align 4 %best = alloca *i32, align 8 %prev = alloca *i32, align 8 %i = alloca i32, align 4 %j = alloca i32, align 4 %max = alloca i32, align 4 store %a, %1 store %N, %2 store 0, %max %3 = load %2 %4 = sext i32 %3 to i64 %5 = mul 4 %4 %6 = alloca i8, numElementsLit: %5 %7 = bitcast *i8 %6 to *i32 store %7, %best %8 = load %2 %9 = sext i32 %8 to i64 %10 = mul 4 %9 %11 = alloca i8, numElementsLit: %10 %12 = bitcast *i8 %11 to *i32 store %12, %prev store 0, %i br %13 13: %14 = load %i %15 = load %2 %16 = icmp slt %14 %15 br %16, %17, %30 17: %18 = load %i %19 = sext i32 %18 to i64 %20 = load %best %21 = getelementptr %20, %19 store 1, %21 %22 = load %i %23 = load %i %24 = sext i32 %23 to i64 %25 = load %prev %26 = getelementptr %25, %24 store %22, %26 br %27 27: %28 = load %i %29 = add %28 1 store %29, %i br %13 30: store 1, %i br %31 31: %32 = load %i %33 = load %2 %34 = icmp slt %32 %33 br %34, %35, %89 35: store 0, %j br %36 36: %37 = load %j %38 = load %i %39 = icmp slt %37 %38 br %39, %40, %85 40: %41 = load %i %42 = sext i32 %41 to i64 %43 = load %1 %44 = getelementptr %43, %42 %45 = load %44 %46 = load %j %47 = sext i32 %46 to i64 %48 = load %1 %49 = getelementptr %48, %47 %50 = load %49 %51 = icmp sgt %45 %50 br %51, %52, %81 52: %53 = load %i %54 = sext i32 %53 to i64 %55 = load %best %56 = getelementptr %55, %54 %57 = load %56 %58 = load %j %59 = sext i32 %58 to i64 %60 = load %best %61 = getelementptr %60, %59 %62 = load %61 %63 = add %62 1 %64 = icmp slt %57 %63 br %64, %65, %81 65: %66 = load %j %67 = sext i32 %66 to i64 %68 = load %best %69 = getelementptr %68, %67 %70 = load %69 %71 = add %70 1 %72 = load %i %73 = sext i32 %72 to i64 %74 = load %best %75 = getelementptr %74, %73 store %71, %75 %76 = load %j %77 = load %i %78 = sext i32 %77 to i64 %79 = load %prev %80 = getelementptr %79, %78 store %76, %80 br %81 81: br %82 82: %83 = load %j %84 = add %83 1 store %84, %j br %36 85: br %86 86: %87 = load %i %88 = add %87 1 store %88, %i br %31 89: store 0, %i br %90 90: %91 = load %i %92 = load %2 %93 = icmp slt %91 %92 br %93, %94, %112 94: %95 = load %max %96 = load %i %97 = sext i32 %96 to i64 %98 = load %best %99 = getelementptr %98, %97 %100 = load %99 %101 = icmp slt %95 %100 br %101, %102, %108 102: %103 = load %i %104 = sext i32 %103 to i64 %105 = load %best %106 = getelementptr %105, %104 %107 = load %106 store %107, %max br %108 108: br %109 109: %110 = load %i %111 = add %110 1 store %111, %i br %90 112: %113 = load %max ret %113 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %array_size = alloca i32, align 4 %numbers = alloca *i32, align 8 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %array_size %3 = load %array_size %4 = icmp slt %3 1 br %4, %5, %6 5: store 1, %array_size br %6 6: %7 = load %array_size %8 = sext i32 %7 to i64 %9 = mul %8 4 %10 = alloca i8, numElementsLit: %9 %11 = bitcast *i8 %10 to *i32 store %11, %numbers %12 = load %numbers %13 = load %array_size %14 = call i32 @lis(*i32 %12, i32 %13) ret %14 Analyze Termination of all function calls matching the pattern: main()