/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: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could not be shown: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 172 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 58.6 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) LLVM Symbolic Execution SCC (9) LLVM Symbolic Execution SCC (10) SymbolicExecutionGraphToLassoProof [COMPLETE, 94 ms] (11) AND (12) LLVM Symbolic Execution Lasso (13) LLVM Symbolic Execution Lasso (14) LLVM Symbolic Execution Lasso (15) LLVM Symbolic Execution Lasso ---------------------------------------- (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: Name: nomsg initVal: -1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: mode1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: r1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p8_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p1_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p1_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p2_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p2_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p3_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p3_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p4_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p4_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p5_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p5_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p6_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p6_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p7_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: mode8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p7_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: id8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: send8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: st8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: p8_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: nodes initVal: (@node1,@node2,@node3,@node4,@node5,@node6,@node7,@node8) type: [8 x *BasicFunctionType varArgs: falsereturnType: BasicVoidTypeparamTypes: ()] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: null section: null Name: p1 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p2 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p3 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p4 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p5 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p6 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p7 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: p8 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_char" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_nondet_msg_t" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_nondet__Bool" returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "node1" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m1 = alloca i8, align 1 %1 = load @nomsg store %1, %m1 %2 = load @mode1 %3 = trunc i8 %2 to i1 br %3, %4, %36 4: %5 = load @r1 %6 = sext i8 %5 to i32 %7 = add %6 1 %8 = trunc i32 %7 to i8 store %8, @r1 %9 = load @p8_old store %9, %m1 %10 = load @nomsg store %10, @p8_old %11 = load %m1 %12 = sext i8 %11 to i32 %13 = load @nomsg %14 = sext i8 %13 to i32 %15 = icmp ne %12 %14 br %15, %16, %35 16: %17 = load %m1 %18 = sext i8 %17 to i32 %19 = load @id1 %20 = sext i8 %19 to i32 %21 = icmp sgt %18 %20 br %21, %22, %24 22: %23 = load %m1 store %23, @send1 br %34 24: %25 = load %m1 %26 = sext i8 %25 to i32 %27 = load @id1 %28 = sext i8 %27 to i32 %29 = icmp eq %26 %28 br %29, %30, %31 30: store 1, @st1 br %33 31: %32 = load %m1 store %32, @send1 br %33 33: br %34 34: br %35 35: store 0, @mode1 br %57 36: %37 = load @send1 %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp ne %38 %40 br %41, %42, %51 42: %43 = load @p1_new %44 = sext i8 %43 to i32 %45 = load @nomsg %46 = sext i8 %45 to i32 %47 = icmp eq %44 %46 br %47, %48, %51 48: %49 = load @send1 %50 = sext i8 %49 to i32 br %54 51: %52 = load @p1_new %53 = sext i8 %52 to i32 br %54 54: %55 = phi [%50, %48], [%53, %51] %56 = trunc i32 %55 to i8 store %56, @p1_new store 1, @mode1 br %57 57: ret void *BasicFunctionTypename: "node2" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m2 = alloca i8, align 1 %1 = load @nomsg store %1, %m2 %2 = load @mode2 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p1_old store %5, %m2 %6 = load @nomsg store %6, @p1_old %7 = load %m2 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m2 %14 = sext i8 %13 to i32 %15 = load @id2 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m2 store %19, @send2 br %28 20: %21 = load %m2 %22 = sext i8 %21 to i32 %23 = load @id2 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st2 br %27 27: br %28 28: br %29 29: store 0, @mode2 br %51 30: %31 = load @send2 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p2_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send2 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p2_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p2_new store 1, @mode2 br %51 51: ret void *BasicFunctionTypename: "node3" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m3 = alloca i8, align 1 %1 = load @nomsg store %1, %m3 %2 = load @mode3 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p2_old store %5, %m3 %6 = load @nomsg store %6, @p2_old %7 = load %m3 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m3 %14 = sext i8 %13 to i32 %15 = load @id3 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m3 store %19, @send3 br %28 20: %21 = load %m3 %22 = sext i8 %21 to i32 %23 = load @id3 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st3 br %27 27: br %28 28: br %29 29: store 0, @mode3 br %51 30: %31 = load @send3 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p3_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send3 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p3_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p3_new store 1, @mode3 br %51 51: ret void *BasicFunctionTypename: "node4" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m4 = alloca i8, align 1 %1 = load @nomsg store %1, %m4 %2 = load @mode4 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p3_old store %5, %m4 %6 = load @nomsg store %6, @p3_old %7 = load %m4 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m4 %14 = sext i8 %13 to i32 %15 = load @id4 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m4 store %19, @send4 br %28 20: %21 = load %m4 %22 = sext i8 %21 to i32 %23 = load @id4 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st4 br %27 27: br %28 28: br %29 29: store 0, @mode4 br %51 30: %31 = load @send4 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p4_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send4 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p4_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p4_new store 1, @mode4 br %51 51: ret void *BasicFunctionTypename: "node5" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m5 = alloca i8, align 1 %1 = load @nomsg store %1, %m5 %2 = load @mode5 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p4_old store %5, %m5 %6 = load @nomsg store %6, @p4_old %7 = load %m5 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m5 %14 = sext i8 %13 to i32 %15 = load @id5 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m5 store %19, @send5 br %28 20: %21 = load %m5 %22 = sext i8 %21 to i32 %23 = load @id5 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st5 br %27 27: br %28 28: br %29 29: store 0, @mode5 br %51 30: %31 = load @send5 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p5_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send5 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p5_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p5_new store 1, @mode5 br %51 51: ret void *BasicFunctionTypename: "node6" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m6 = alloca i8, align 1 %1 = load @nomsg store %1, %m6 %2 = load @mode6 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p5_old store %5, %m6 %6 = load @nomsg store %6, @p5_old %7 = load %m6 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m6 %14 = sext i8 %13 to i32 %15 = load @id6 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m6 store %19, @send6 br %28 20: %21 = load %m6 %22 = sext i8 %21 to i32 %23 = load @id6 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st6 br %27 27: br %28 28: br %29 29: store 0, @mode6 br %51 30: %31 = load @send6 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p6_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send6 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p6_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p6_new store 1, @mode6 br %51 51: ret void *BasicFunctionTypename: "node7" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m7 = alloca i8, align 1 %1 = load @nomsg store %1, %m7 %2 = load @mode7 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p6_old store %5, %m7 %6 = load @nomsg store %6, @p6_old %7 = load %m7 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m7 %14 = sext i8 %13 to i32 %15 = load @id7 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m7 store %19, @send7 br %28 20: %21 = load %m7 %22 = sext i8 %21 to i32 %23 = load @id7 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st7 br %27 27: br %28 28: br %29 29: store 0, @mode7 br %51 30: %31 = load @send7 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p7_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send7 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p7_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p7_new store 1, @mode7 br %51 51: ret void *BasicFunctionTypename: "node8" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %m8 = alloca i8, align 1 %1 = load @nomsg store %1, %m8 %2 = load @mode8 %3 = trunc i8 %2 to i1 br %3, %4, %30 4: %5 = load @p7_old store %5, %m8 %6 = load @nomsg store %6, @p7_old %7 = load %m8 %8 = sext i8 %7 to i32 %9 = load @nomsg %10 = sext i8 %9 to i32 %11 = icmp ne %8 %10 br %11, %12, %29 12: %13 = load %m8 %14 = sext i8 %13 to i32 %15 = load @id8 %16 = sext i8 %15 to i32 %17 = icmp sgt %14 %16 br %17, %18, %20 18: %19 = load %m8 store %19, @send8 br %28 20: %21 = load %m8 %22 = sext i8 %21 to i32 %23 = load @id8 %24 = sext i8 %23 to i32 %25 = icmp eq %22 %24 br %25, %26, %27 26: store 1, @st8 br %27 27: br %28 28: br %29 29: store 0, @mode8 br %51 30: %31 = load @send8 %32 = sext i8 %31 to i32 %33 = load @nomsg %34 = sext i8 %33 to i32 %35 = icmp ne %32 %34 br %35, %36, %45 36: %37 = load @p8_new %38 = sext i8 %37 to i32 %39 = load @nomsg %40 = sext i8 %39 to i32 %41 = icmp eq %38 %40 br %41, %42, %45 42: %43 = load @send8 %44 = sext i8 %43 to i32 br %48 45: %46 = load @p8_new %47 = sext i8 %46 to i32 br %48 48: %49 = phi [%44, %42], [%47, %45] %50 = trunc i32 %49 to i8 store %50, @p8_new store 1, @mode8 br %51 51: ret void *BasicFunctionTypename: "init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %tmp = alloca i32, align 4 %1 = load @r1 %2 = sext i8 %1 to i32 %3 = icmp eq %2 0 br %3, %4, %445 4: %5 = load @id1 %6 = sext i8 %5 to i32 %7 = icmp sge %6 0 br %7, %8, %443 8: %9 = load @st1 %10 = sext i8 %9 to i32 %11 = icmp eq %10 0 br %11, %12, %441 12: %13 = load @send1 %14 = sext i8 %13 to i32 %15 = load @id1 %16 = sext i8 %15 to i32 %17 = icmp eq %14 %16 br %17, %18, %439 18: %19 = load @mode1 %20 = trunc i8 %19 to i1 %21 = zext i1 %20 to i32 %22 = icmp eq %21 0 br %22, %23, %437 23: %24 = load @id2 %25 = sext i8 %24 to i32 %26 = icmp sge %25 0 br %26, %27, %435 27: %28 = load @st2 %29 = sext i8 %28 to i32 %30 = icmp eq %29 0 br %30, %31, %433 31: %32 = load @send2 %33 = sext i8 %32 to i32 %34 = load @id2 %35 = sext i8 %34 to i32 %36 = icmp eq %33 %35 br %36, %37, %431 37: %38 = load @mode2 %39 = trunc i8 %38 to i1 %40 = zext i1 %39 to i32 %41 = icmp eq %40 0 br %41, %42, %429 42: %43 = load @id3 %44 = sext i8 %43 to i32 %45 = icmp sge %44 0 br %45, %46, %427 46: %47 = load @st3 %48 = sext i8 %47 to i32 %49 = icmp eq %48 0 br %49, %50, %425 50: %51 = load @send3 %52 = sext i8 %51 to i32 %53 = load @id3 %54 = sext i8 %53 to i32 %55 = icmp eq %52 %54 br %55, %56, %423 56: %57 = load @mode3 %58 = trunc i8 %57 to i1 %59 = zext i1 %58 to i32 %60 = icmp eq %59 0 br %60, %61, %421 61: %62 = load @id4 %63 = sext i8 %62 to i32 %64 = icmp sge %63 0 br %64, %65, %419 65: %66 = load @st4 %67 = sext i8 %66 to i32 %68 = icmp eq %67 0 br %68, %69, %417 69: %70 = load @send4 %71 = sext i8 %70 to i32 %72 = load @id4 %73 = sext i8 %72 to i32 %74 = icmp eq %71 %73 br %74, %75, %415 75: %76 = load @mode4 %77 = trunc i8 %76 to i1 %78 = zext i1 %77 to i32 %79 = icmp eq %78 0 br %79, %80, %413 80: %81 = load @id5 %82 = sext i8 %81 to i32 %83 = icmp sge %82 0 br %83, %84, %411 84: %85 = load @st5 %86 = sext i8 %85 to i32 %87 = icmp eq %86 0 br %87, %88, %409 88: %89 = load @send5 %90 = sext i8 %89 to i32 %91 = load @id5 %92 = sext i8 %91 to i32 %93 = icmp eq %90 %92 br %93, %94, %407 94: %95 = load @mode5 %96 = trunc i8 %95 to i1 %97 = zext i1 %96 to i32 %98 = icmp eq %97 0 br %98, %99, %405 99: %100 = load @id6 %101 = sext i8 %100 to i32 %102 = icmp sge %101 0 br %102, %103, %403 103: %104 = load @st6 %105 = sext i8 %104 to i32 %106 = icmp eq %105 0 br %106, %107, %401 107: %108 = load @send6 %109 = sext i8 %108 to i32 %110 = load @id6 %111 = sext i8 %110 to i32 %112 = icmp eq %109 %111 br %112, %113, %399 113: %114 = load @mode6 %115 = trunc i8 %114 to i1 %116 = zext i1 %115 to i32 %117 = icmp eq %116 0 br %117, %118, %397 118: %119 = load @id7 %120 = sext i8 %119 to i32 %121 = icmp sge %120 0 br %121, %122, %395 122: %123 = load @st7 %124 = sext i8 %123 to i32 %125 = icmp eq %124 0 br %125, %126, %393 126: %127 = load @send7 %128 = sext i8 %127 to i32 %129 = load @id7 %130 = sext i8 %129 to i32 %131 = icmp eq %128 %130 br %131, %132, %391 132: %133 = load @mode7 %134 = trunc i8 %133 to i1 %135 = zext i1 %134 to i32 %136 = icmp eq %135 0 br %136, %137, %389 137: %138 = load @id8 %139 = sext i8 %138 to i32 %140 = icmp sge %139 0 br %140, %141, %387 141: %142 = load @st8 %143 = sext i8 %142 to i32 %144 = icmp eq %143 0 br %144, %145, %385 145: %146 = load @send8 %147 = sext i8 %146 to i32 %148 = load @id8 %149 = sext i8 %148 to i32 %150 = icmp eq %147 %149 br %150, %151, %383 151: %152 = load @mode8 %153 = trunc i8 %152 to i1 %154 = zext i1 %153 to i32 %155 = icmp eq %154 0 br %155, %156, %381 156: %157 = load @id1 %158 = sext i8 %157 to i32 %159 = load @id2 %160 = sext i8 %159 to i32 %161 = icmp ne %158 %160 br %161, %162, %379 162: %163 = load @id1 %164 = sext i8 %163 to i32 %165 = load @id3 %166 = sext i8 %165 to i32 %167 = icmp ne %164 %166 br %167, %168, %377 168: %169 = load @id1 %170 = sext i8 %169 to i32 %171 = load @id4 %172 = sext i8 %171 to i32 %173 = icmp ne %170 %172 br %173, %174, %375 174: %175 = load @id1 %176 = sext i8 %175 to i32 %177 = load @id5 %178 = sext i8 %177 to i32 %179 = icmp ne %176 %178 br %179, %180, %373 180: %181 = load @id1 %182 = sext i8 %181 to i32 %183 = load @id6 %184 = sext i8 %183 to i32 %185 = icmp ne %182 %184 br %185, %186, %371 186: %187 = load @id1 %188 = sext i8 %187 to i32 %189 = load @id7 %190 = sext i8 %189 to i32 %191 = icmp ne %188 %190 br %191, %192, %369 192: %193 = load @id1 %194 = sext i8 %193 to i32 %195 = load @id8 %196 = sext i8 %195 to i32 %197 = icmp ne %194 %196 br %197, %198, %367 198: %199 = load @id2 %200 = sext i8 %199 to i32 %201 = load @id3 %202 = sext i8 %201 to i32 %203 = icmp ne %200 %202 br %203, %204, %365 204: %205 = load @id2 %206 = sext i8 %205 to i32 %207 = load @id4 %208 = sext i8 %207 to i32 %209 = icmp ne %206 %208 br %209, %210, %363 210: %211 = load @id2 %212 = sext i8 %211 to i32 %213 = load @id5 %214 = sext i8 %213 to i32 %215 = icmp ne %212 %214 br %215, %216, %361 216: %217 = load @id2 %218 = sext i8 %217 to i32 %219 = load @id6 %220 = sext i8 %219 to i32 %221 = icmp ne %218 %220 br %221, %222, %359 222: %223 = load @id2 %224 = sext i8 %223 to i32 %225 = load @id7 %226 = sext i8 %225 to i32 %227 = icmp ne %224 %226 br %227, %228, %357 228: %229 = load @id2 %230 = sext i8 %229 to i32 %231 = load @id8 %232 = sext i8 %231 to i32 %233 = icmp ne %230 %232 br %233, %234, %355 234: %235 = load @id3 %236 = sext i8 %235 to i32 %237 = load @id4 %238 = sext i8 %237 to i32 %239 = icmp ne %236 %238 br %239, %240, %353 240: %241 = load @id3 %242 = sext i8 %241 to i32 %243 = load @id5 %244 = sext i8 %243 to i32 %245 = icmp ne %242 %244 br %245, %246, %351 246: %247 = load @id3 %248 = sext i8 %247 to i32 %249 = load @id6 %250 = sext i8 %249 to i32 %251 = icmp ne %248 %250 br %251, %252, %349 252: %253 = load @id3 %254 = sext i8 %253 to i32 %255 = load @id7 %256 = sext i8 %255 to i32 %257 = icmp ne %254 %256 br %257, %258, %347 258: %259 = load @id3 %260 = sext i8 %259 to i32 %261 = load @id8 %262 = sext i8 %261 to i32 %263 = icmp ne %260 %262 br %263, %264, %345 264: %265 = load @id4 %266 = sext i8 %265 to i32 %267 = load @id5 %268 = sext i8 %267 to i32 %269 = icmp ne %266 %268 br %269, %270, %343 270: %271 = load @id4 %272 = sext i8 %271 to i32 %273 = load @id6 %274 = sext i8 %273 to i32 %275 = icmp ne %272 %274 br %275, %276, %341 276: %277 = load @id4 %278 = sext i8 %277 to i32 %279 = load @id7 %280 = sext i8 %279 to i32 %281 = icmp ne %278 %280 br %281, %282, %339 282: %283 = load @id4 %284 = sext i8 %283 to i32 %285 = load @id8 %286 = sext i8 %285 to i32 %287 = icmp ne %284 %286 br %287, %288, %337 288: %289 = load @id5 %290 = sext i8 %289 to i32 %291 = load @id6 %292 = sext i8 %291 to i32 %293 = icmp ne %290 %292 br %293, %294, %335 294: %295 = load @id5 %296 = sext i8 %295 to i32 %297 = load @id7 %298 = sext i8 %297 to i32 %299 = icmp ne %296 %298 br %299, %300, %333 300: %301 = load @id5 %302 = sext i8 %301 to i32 %303 = load @id8 %304 = sext i8 %303 to i32 %305 = icmp ne %302 %304 br %305, %306, %331 306: %307 = load @id6 %308 = sext i8 %307 to i32 %309 = load @id7 %310 = sext i8 %309 to i32 %311 = icmp ne %308 %310 br %311, %312, %329 312: %313 = load @id6 %314 = sext i8 %313 to i32 %315 = load @id8 %316 = sext i8 %315 to i32 %317 = icmp ne %314 %316 br %317, %318, %327 318: %319 = load @id7 %320 = sext i8 %319 to i32 %321 = load @id8 %322 = sext i8 %321 to i32 %323 = icmp ne %320 %322 br %323, %324, %325 324: store 1, %tmp br %326 325: store 0, %tmp br %326 326: br %328 327: store 0, %tmp br %328 328: br %330 329: store 0, %tmp br %330 330: br %332 331: store 0, %tmp br %332 332: br %334 333: store 0, %tmp br %334 334: br %336 335: store 0, %tmp br %336 336: br %338 337: store 0, %tmp br %338 338: br %340 339: store 0, %tmp br %340 340: br %342 341: store 0, %tmp br %342 342: br %344 343: store 0, %tmp br %344 344: br %346 345: store 0, %tmp br %346 346: br %348 347: store 0, %tmp br %348 348: br %350 349: store 0, %tmp br %350 350: br %352 351: store 0, %tmp br %352 352: br %354 353: store 0, %tmp br %354 354: br %356 355: store 0, %tmp br %356 356: br %358 357: store 0, %tmp br %358 358: br %360 359: store 0, %tmp br %360 360: br %362 361: store 0, %tmp br %362 362: br %364 363: store 0, %tmp br %364 364: br %366 365: store 0, %tmp br %366 366: br %368 367: store 0, %tmp br %368 368: br %370 369: store 0, %tmp br %370 370: br %372 371: store 0, %tmp br %372 372: br %374 373: store 0, %tmp br %374 374: br %376 375: store 0, %tmp br %376 376: br %378 377: store 0, %tmp br %378 378: br %380 379: store 0, %tmp br %380 380: br %382 381: store 0, %tmp br %382 382: br %384 383: store 0, %tmp br %384 384: br %386 385: store 0, %tmp br %386 386: br %388 387: store 0, %tmp br %388 388: br %390 389: store 0, %tmp br %390 390: br %392 391: store 0, %tmp br %392 392: br %394 393: store 0, %tmp br %394 394: br %396 395: store 0, %tmp br %396 396: br %398 397: store 0, %tmp br %398 398: br %400 399: store 0, %tmp br %400 400: br %402 401: store 0, %tmp br %402 402: br %404 403: store 0, %tmp br %404 404: br %406 405: store 0, %tmp br %406 406: br %408 407: store 0, %tmp br %408 408: br %410 409: store 0, %tmp br %410 410: br %412 411: store 0, %tmp br %412 412: br %414 413: store 0, %tmp br %414 414: br %416 415: store 0, %tmp br %416 416: br %418 417: store 0, %tmp br %418 418: br %420 419: store 0, %tmp br %420 420: br %422 421: store 0, %tmp br %422 422: br %424 423: store 0, %tmp br %424 424: br %426 425: store 0, %tmp br %426 426: br %428 427: store 0, %tmp br %428 428: br %430 429: store 0, %tmp br %430 430: br %432 431: store 0, %tmp br %432 432: br %434 433: store 0, %tmp br %434 434: br %436 435: store 0, %tmp br %436 436: br %438 437: store 0, %tmp br %438 438: br %440 439: store 0, %tmp br %440 440: br %442 441: store 0, %tmp br %442 442: br %444 443: store 0, %tmp br %444 444: br %446 445: store 0, %tmp br %446 446: %447 = load %tmp ret %447 *BasicFunctionTypename: "check" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %tmp = alloca i32, align 4 %1 = load @st1 %2 = sext i8 %1 to i32 %3 = load @st2 %4 = sext i8 %3 to i32 %5 = add %2 %4 %6 = load @st3 %7 = sext i8 %6 to i32 %8 = add %5 %7 %9 = load @st4 %10 = sext i8 %9 to i32 %11 = add %8 %10 %12 = load @st5 %13 = sext i8 %12 to i32 %14 = add %11 %13 %15 = load @st6 %16 = sext i8 %15 to i32 %17 = add %14 %16 %18 = load @st7 %19 = sext i8 %18 to i32 %20 = add %17 %19 %21 = load @st8 %22 = sext i8 %21 to i32 %23 = add %20 %22 %24 = icmp sle %23 1 br %24, %25, %93 25: %26 = load @r1 %27 = sext i8 %26 to i32 %28 = icmp sge %27 8 br %28, %29, %30 29: br %56 30: %31 = load @st1 %32 = sext i8 %31 to i32 %33 = load @st2 %34 = sext i8 %33 to i32 %35 = add %32 %34 %36 = load @st3 %37 = sext i8 %36 to i32 %38 = add %35 %37 %39 = load @st4 %40 = sext i8 %39 to i32 %41 = add %38 %40 %42 = load @st5 %43 = sext i8 %42 to i32 %44 = add %41 %43 %45 = load @st6 %46 = sext i8 %45 to i32 %47 = add %44 %46 %48 = load @st7 %49 = sext i8 %48 to i32 %50 = add %47 %49 %51 = load @st8 %52 = sext i8 %51 to i32 %53 = add %50 %52 %54 = icmp eq %53 0 br %54, %55, %90 55: br %56 56: %57 = load @r1 %58 = sext i8 %57 to i32 %59 = icmp slt %58 8 br %59, %60, %61 60: store 1, %tmp br %89 61: %62 = load @st1 %63 = sext i8 %62 to i32 %64 = load @st2 %65 = sext i8 %64 to i32 %66 = add %63 %65 %67 = load @st3 %68 = sext i8 %67 to i32 %69 = add %66 %68 %70 = load @st4 %71 = sext i8 %70 to i32 %72 = add %69 %71 %73 = load @st5 %74 = sext i8 %73 to i32 %75 = add %72 %74 %76 = load @st6 %77 = sext i8 %76 to i32 %78 = add %75 %77 %79 = load @st7 %80 = sext i8 %79 to i32 %81 = add %78 %80 %82 = load @st8 %83 = sext i8 %82 to i32 %84 = add %81 %83 %85 = icmp eq %84 1 br %85, %86, %87 86: store 1, %tmp br %88 87: store 0, %tmp br %88 88: br %89 89: br %91 90: store 0, %tmp br %91 91: br %92 92: br %94 93: store 0, %tmp br %94 94: %95 = load %tmp ret %95 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %c1 = alloca i32, align 4 %i2 = alloca i32, align 4 store 0, %1 store 0, %c1 %2 = call signext i8 @__VERIFIER_nondet_char() store %2, @r1 %3 = call signext i8 @__VERIFIER_nondet_char() store %3, @id1 %4 = call signext i8 @__VERIFIER_nondet_char() store %4, @st1 %5 = call signext i8 @__VERIFIER_nondet_msg_t() store %5, @send1 %6 = call zeroext i1 @__VERIFIER_nondet__Bool() %7 = zext i1 %6 to i8 store %7, @mode1 %8 = call signext i8 @__VERIFIER_nondet_char() store %8, @id2 %9 = call signext i8 @__VERIFIER_nondet_char() store %9, @st2 %10 = call signext i8 @__VERIFIER_nondet_msg_t() store %10, @send2 %11 = call zeroext i1 @__VERIFIER_nondet__Bool() %12 = zext i1 %11 to i8 store %12, @mode2 %13 = call signext i8 @__VERIFIER_nondet_char() store %13, @id3 %14 = call signext i8 @__VERIFIER_nondet_char() store %14, @st3 %15 = call signext i8 @__VERIFIER_nondet_msg_t() store %15, @send3 %16 = call zeroext i1 @__VERIFIER_nondet__Bool() %17 = zext i1 %16 to i8 store %17, @mode3 %18 = call signext i8 @__VERIFIER_nondet_char() store %18, @id4 %19 = call signext i8 @__VERIFIER_nondet_char() store %19, @st4 %20 = call signext i8 @__VERIFIER_nondet_msg_t() store %20, @send4 %21 = call zeroext i1 @__VERIFIER_nondet__Bool() %22 = zext i1 %21 to i8 store %22, @mode4 %23 = call signext i8 @__VERIFIER_nondet_char() store %23, @id5 %24 = call signext i8 @__VERIFIER_nondet_char() store %24, @st5 %25 = call signext i8 @__VERIFIER_nondet_msg_t() store %25, @send5 %26 = call zeroext i1 @__VERIFIER_nondet__Bool() %27 = zext i1 %26 to i8 store %27, @mode5 %28 = call signext i8 @__VERIFIER_nondet_char() store %28, @id6 %29 = call signext i8 @__VERIFIER_nondet_char() store %29, @st6 %30 = call signext i8 @__VERIFIER_nondet_msg_t() store %30, @send6 %31 = call zeroext i1 @__VERIFIER_nondet__Bool() %32 = zext i1 %31 to i8 store %32, @mode6 %33 = call signext i8 @__VERIFIER_nondet_char() store %33, @id7 %34 = call signext i8 @__VERIFIER_nondet_char() store %34, @st7 %35 = call signext i8 @__VERIFIER_nondet_msg_t() store %35, @send7 %36 = call zeroext i1 @__VERIFIER_nondet__Bool() %37 = zext i1 %36 to i8 store %37, @mode7 %38 = call signext i8 @__VERIFIER_nondet_char() store %38, @id8 %39 = call signext i8 @__VERIFIER_nondet_char() store %39, @st8 %40 = call signext i8 @__VERIFIER_nondet_msg_t() store %40, @send8 %41 = call zeroext i1 @__VERIFIER_nondet__Bool() %42 = zext i1 %41 to i8 store %42, @mode8 %43 = call i32 @init() store %43, %i2 %44 = load %i2 %45 = icmp ne %44 0 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %45) %46 = load @nomsg store %46, @p1_old %47 = load @nomsg store %47, @p1_new %48 = load @nomsg store %48, @p2_old %49 = load @nomsg store %49, @p2_new %50 = load @nomsg store %50, @p3_old %51 = load @nomsg store %51, @p3_new %52 = load @nomsg store %52, @p4_old %53 = load @nomsg store %53, @p4_new %54 = load @nomsg store %54, @p5_old %55 = load @nomsg store %55, @p5_new %56 = load @nomsg store %56, @p6_old %57 = load @nomsg store %57, @p6_new %58 = load @nomsg store %58, @p7_old %59 = load @nomsg store %59, @p7_new %60 = load @nomsg store %60, @p8_old %61 = load @nomsg store %61, @p8_new store 0, %i2 br %62 62: %63 = load %i2 %64 = icmp slt %63 16 br %64, %65, %87 65: Unnamed Call-Instruction = call BasicVoidType @node1() Unnamed Call-Instruction = call BasicVoidType @node2() Unnamed Call-Instruction = call BasicVoidType @node3() Unnamed Call-Instruction = call BasicVoidType @node4() Unnamed Call-Instruction = call BasicVoidType @node5() Unnamed Call-Instruction = call BasicVoidType @node6() Unnamed Call-Instruction = call BasicVoidType @node7() Unnamed Call-Instruction = call BasicVoidType @node8() %66 = load @p1_new store %66, @p1_old %67 = load @nomsg store %67, @p1_new %68 = load @p2_new store %68, @p2_old %69 = load @nomsg store %69, @p2_new %70 = load @p3_new store %70, @p3_old %71 = load @nomsg store %71, @p3_new %72 = load @p4_new store %72, @p4_old %73 = load @nomsg store %73, @p4_new %74 = load @p5_new store %74, @p5_old %75 = load @nomsg store %75, @p5_new %76 = load @p6_new store %76, @p6_old %77 = load @nomsg store %77, @p6_new %78 = load @p7_new store %78, @p7_old %79 = load @nomsg store %79, @p7_new %80 = load @p8_new store %80, @p8_old %81 = load @nomsg store %81, @p8_new %82 = call i32 @check() store %82, %c1 %83 = load %c1 %84 = icmp ne %83 0 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext %84) %85 = load %i2 %86 = add %85 1 store %86, %i2 br %62 87: %88 = load %1 ret %88 *BasicFunctionTypename: "__VERIFIER_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = zext i1 %arg to i8 store %2, %1 br %3 3: %4 = load %1 %5 = trunc i8 %4 to i1 %6 = xor %5 1 br %6, %7, %8 7: br %3 8: ret void *BasicFunctionTypename: "assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = zext i1 %arg to i8 store %2, %1 %3 = load %1 %4 = trunc i8 %3 to i1 br %4, %7, %5 5: br %6 6: Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn unreachable 7: ret void Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 3 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) Obligation: SCC ---------------------------------------- (9) Obligation: SCC ---------------------------------------- (10) SymbolicExecutionGraphToLassoProof (COMPLETE) Converted SEGraph to 4 dependent lassos. ---------------------------------------- (11) Complex Obligation (AND) ---------------------------------------- (12) Obligation: Lasso ---------------------------------------- (13) Obligation: Lasso ---------------------------------------- (14) Obligation: Lasso ---------------------------------------- (15) Obligation: Lasso