(self, name, args, rtype, expr)
Declare an interpreted function. Can be used to build abbreviations.

        Restrictions: Only after set-logic.

        :param name: Name of the function
        :type name:  String
        :param args: Name and Type of the arguments of the function
        :type args: List of tuples (name, type)
        :param rtype: Return type
        :type rtype: Sort
        :param expr: Expression to associate with the functino
        :type expr: FNode
        :returns: None - might raise exceptions
Declare an interpreted function. Can be used to build abbreviations.
Declare an interpreted function . Can be used to build abbreviations .
def define_fun(self, name, args, rtype, expr):
        """ Declare an interpreted function. Can be used to build abbreviations.

        Restrictions: Only after set-logic.

        :param name: Name of the function
        :type name:  String
        :param args: Name and Type of the arguments of the function
        :type args: List of tuples (name, type)
        :param rtype: Return type
        :type rtype: Sort
        :param expr: Expression to associate with the functino
        :type expr: FNode
        :returns: None - might raise exceptions
        """
        raise NotImplementedError
def define_fun ( self , name , args , rtype , expr ) : raise NotImplementedError