For common LLVM function contracts it may be useful for SAW users to simply
specity the function's signature and pre/postconditions and let the
low-level SAW boilerplate (e.g., the Python equivalents to crucible_fresh_var
,
crucible_alloc
, etc) be done automatically since they're fairly predictable.
E.g., The abstract function contract class might look as follows:
class LLVMFunctionContract(metaclass=ABCMeta):