24.25/7.01 NO 24.55/7.02 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 24.55/7.02 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 24.55/7.02 24.55/7.02 24.55/7.02 Termination of the given C Problem could be disproven: 24.55/7.02 24.55/7.02 (0) C Problem 24.55/7.02 (1) CToLLVMProof [EQUIVALENT, 147 ms] 24.55/7.02 (2) LLVM problem 24.55/7.02 (3) LLVMToTerminationGraphProof [EQUIVALENT, 997 ms] 24.55/7.02 (4) LLVM Symbolic Execution Graph 24.55/7.02 (5) LLVMNonterminationProof [COMPLETE, 523 ms] 24.55/7.02 (6) NO 24.55/7.02 24.55/7.02 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (0) 24.55/7.02 Obligation: 24.55/7.02 c file /export/starexec/sandbox/benchmark/theBenchmark.c 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (1) CToLLVMProof (EQUIVALENT) 24.55/7.02 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (2) 24.55/7.02 Obligation: 24.55/7.02 LLVM Problem 24.55/7.02 24.55/7.02 Aliases: 24.55/7.02 24.55/7.02 Data layout: 24.55/7.02 24.55/7.02 "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" 24.55/7.02 24.55/7.02 Machine: 24.55/7.02 24.55/7.02 "x86_64-pc-linux-gnu" 24.55/7.02 24.55/7.02 Type definitions: 24.55/7.02 24.55/7.02 Global variables: 24.55/7.02 24.55/7.02 Function declarations and definitions: 24.55/7.02 24.55/7.02 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 24.55/7.02 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 24.55/7.02 0: 24.55/7.02 %1 = alloca i32, align 4 24.55/7.02 %i = alloca i32, align 4 24.55/7.02 %j = alloca i32, align 4 24.55/7.02 %t = alloca i32, align 4 24.55/7.02 store 0, %1 24.55/7.02 %2 = call i32 @__VERIFIER_nondet_int() 24.55/7.02 store %2, %i 24.55/7.02 %3 = call i32 @__VERIFIER_nondet_int() 24.55/7.02 store %3, %j 24.55/7.02 store 0, %t 24.55/7.02 br %4 24.55/7.02 4: 24.55/7.02 %5 = load %i 24.55/7.02 %6 = icmp sgt %5 0 24.55/7.02 br %6, %7, %10 24.55/7.02 7: 24.55/7.02 %8 = load %j 24.55/7.02 %9 = icmp sgt %8 0 24.55/7.02 br %10 24.55/7.02 10: 24.55/7.02 %11 = phi [0, %4], [%9, %7] 24.55/7.02 br %11, %12, %31 24.55/7.02 12: 24.55/7.02 %13 = load %i 24.55/7.02 %14 = load %j 24.55/7.02 %15 = icmp slt %13 %14 24.55/7.02 br %15, %16, %20 24.55/7.02 16: 24.55/7.02 %17 = load %i 24.55/7.02 store %17, %t 24.55/7.02 %18 = load %j 24.55/7.02 store %18, %i 24.55/7.02 %19 = load %t 24.55/7.02 store %19, %j 24.55/7.02 br %30 24.55/7.02 20: 24.55/7.02 %21 = load %i 24.55/7.02 %22 = load %j 24.55/7.02 %23 = icmp sgt %21 %22 24.55/7.02 br %23, %24, %26 24.55/7.02 24: 24.55/7.02 %25 = load %i 24.55/7.02 store %25, %j 24.55/7.02 br %29 24.55/7.02 26: 24.55/7.02 %27 = load %i 24.55/7.02 %28 = sub %27 1 24.55/7.02 store %28, %i 24.55/7.02 br %29 24.55/7.02 29: 24.55/7.02 br %30 24.55/7.02 30: 24.55/7.02 br %4 24.55/7.02 31: 24.55/7.02 ret 0 24.55/7.02 24.55/7.02 24.55/7.02 Analyze Termination of all function calls matching the pattern: 24.55/7.02 main() 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (3) LLVMToTerminationGraphProof (EQUIVALENT) 24.55/7.02 Constructed symbolic execution graph for LLVM program and proved memory safety. 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (4) 24.55/7.02 Obligation: 24.55/7.02 SE Graph 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (5) LLVMNonterminationProof (COMPLETE) 24.55/7.02 Proved nontermination with the following witness: 24.55/7.02 24.55/7.02 State #135 with references set to {}. 24.55/7.02 Nondeterministic instruction %1 = alloca i32, align 4 in node #135 yields value 14. 24.55/7.02 Nondeterministic instruction %i = alloca i32, align 4 in node #136 yields value 10. 24.55/7.02 Nondeterministic instruction %j = alloca i32, align 4 in node #137 yields value 1. 24.55/7.02 Nondeterministic instruction %t = alloca i32, align 4 in node #138 yields value 5. 24.55/7.02 Nondeterministic instruction %2 = call i32 @__VERIFIER_nondet_int() in node #140 yields value 9. 24.55/7.02 Nondeterministic instruction %3 = call i32 @__VERIFIER_nondet_int() in node #142 yields value 4. 24.55/7.02 24.55/7.02 ---------------------------------------- 24.55/7.02 24.55/7.02 (6) 24.55/7.02 NO 24.57/7.07 EOF