/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, 178 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: "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 %tmp = alloca i32, align 4 %length = alloca i32, align 4 %arr = alloca *i32, align 8 %a = alloca *i32, align 8 %b = alloca *i32, align 8 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %length %3 = load %length %4 = icmp slt %3 1 br %4, %5, %6 5: store 1, %length br %6 6: %7 = load %length %8 = srem %7 2 %9 = icmp eq %8 0 br %9, %10, %13 10: %11 = load %length %12 = add %11 1 store %12, %length br %13 13: %14 = load %length %15 = sext i32 %14 to i64 %16 = alloca i8, numElementsLit: %15 %17 = bitcast *i8 %16 to *i32 store %17, %arr store 0, %i br %18 18: %19 = load %i %20 = load %length %21 = icmp slt %19 %20 br %21, %22, %40 22: %23 = load %i %24 = sext i32 %23 to i64 %25 = load %arr %26 = getelementptr %25, %24 %27 = load %26 %28 = icmp eq %27 0 br %28, %29, %36 29: %30 = load %i %31 = sext i32 %30 to i64 %32 = load %arr %33 = getelementptr %32, %31 %34 = load %33 %35 = add %34 1 store %35, %33 br %36 36: br %37 37: %38 = load %i %39 = add %38 1 store %39, %i br %18 40: %41 = load %length %42 = sdiv %41 2 %43 = add %42 1 %44 = sext i32 %43 to i64 %45 = load %arr %46 = getelementptr %45, %44 store 0, %46 %47 = load %arr store %47, %a %48 = load %arr %49 = load %length %50 = sext i32 %49 to i64 %51 = getelementptr %48, %50 %52 = getelementptr %51, -1 store %52, %b br %53 53: %54 = load %a %55 = load %54 %56 = icmp ne %55 0 br %56, %57, %61 57: %58 = load %b %59 = load %58 %60 = icmp ne %59 0 br %61 61: %62 = phi [0, %53], [%60, %57] br %62, %63, %75 63: %64 = load %a %65 = load %64 store %65, %tmp %66 = load %b %67 = load %66 %68 = load %a store %67, %68 %69 = load %tmp %70 = load %b store %69, %70 %71 = load %a %72 = getelementptr %71, 1 store %72, %a %73 = load %b %74 = getelementptr %73, -1 store %74, %b br %53 75: ret 0 Analyze Termination of all function calls matching the pattern: main()