"nm": lambda x: PO.CPONewMemory(*x),
    'nn': lambda x: PO.CPONotNull(*x),
    'nneg': lambda x: PO.CPONonNegative(*x),
    'no': lambda x: PO.CPONoOverlap(*x),
    'nt': lambda x: PO.CPONullTerminated(*x),
    'null': lambda x: PO.CPONull(*x),
    'pc': lambda x: PO.CPOPointerCast(*x),
    'plb': lambda x: PO.CPOPtrLowerBound(*x),
    'pre': lambda x: PO.CPOPredicate(*x),
    'prm': lambda x: PO.CPOPreservedAllMemory(*x),
    'pub': lambda x: PO.CPOPtrUpperBound(*x),
    'pubd': lambda x: PO.CPOPtrUpperBoundDeref(*x),
    'pv': lambda x: PO.CPOPreservedValue(*x),
    'rb': lambda x: PO.CPORevBuffer(*x),
    'sae': lambda x: PO.CPOStackAddressEscape(*x),
    'tao': lambda x: PO.CPOTypeAtOffset(*x),
    'ub': lambda x: PO.CPOUpperBound(*x),
    'uio': lambda x: PO.CPOUIntOverflow(*x),
    'uiu': lambda x: PO.CPOUIntUnderflow(*x),
    'va': lambda x: PO.CPOVarArgs(*x),
    'vc': lambda x: PO.CPOValueConstraint(*x),
    'vm': lambda x: PO.CPOValidMem(*x),
    'w': lambda x: PO.CPOWidthOverflow(*x),
    'z': lambda x: PO.CPONotZero(*x)
}


class CFilePredicateDictionary(object):
    """Dictionary that encodes proof obligation predicates."""
    def __init__(self, cfile):
        self.cfile = cfile
 def f(index, key):
     return PO.CPOTypeAtOffset(self, index, p.tags, args)
    "nm": lambda x: PO.CPONewMemory(*x),
    "nn": lambda x: PO.CPONotNull(*x),
    "nneg": lambda x: PO.CPONonNegative(*x),
    "no": lambda x: PO.CPONoOverlap(*x),
    "nt": lambda x: PO.CPONullTerminated(*x),
    "null": lambda x: PO.CPONull(*x),
    "pc": lambda x: PO.CPOPointerCast(*x),
    "plb": lambda x: PO.CPOPtrLowerBound(*x),
    "pre": lambda x: PO.CPOPredicate(*x),
    "prm": lambda x: PO.CPOPreservedAllMemory(*x),
    "pub": lambda x: PO.CPOPtrUpperBound(*x),
    "pubd": lambda x: PO.CPOPtrUpperBoundDeref(*x),
    "pv": lambda x: PO.CPOPreservedValue(*x),
    "rb": lambda x: PO.CPORevBuffer(*x),
    "sae": lambda x: PO.CPOStackAddressEscape(*x),
    "tao": lambda x: PO.CPOTypeAtOffset(*x),
    "ub": lambda x: PO.CPOUpperBound(*x),
    "uio": lambda x: PO.CPOUIntOverflow(*x),
    "uiu": lambda x: PO.CPOUIntUnderflow(*x),
    "va": lambda x: PO.CPOVarArgs(*x),
    "vc": lambda x: PO.CPOValueConstraint(*x),
    "vm": lambda x: PO.CPOValidMem(*x),
    "w": lambda x: PO.CPOWidthOverflow(*x),
    "z": lambda x: PO.CPONotZero(*x),
}


class CFilePredicateDictionary(object):
    """Dictionary that encodes proof obligation predicates."""
    def __init__(self, cfile):
        self.cfile = cfile