<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _rdistributive(self, expr, op_example):
 """ Recursively flatten the `expr` expression for the `op_example` AND or OR operation instance exmaple. """

        if expr.isliteral:
            return expr

        expr_class = expr.__class__

        args = (self._rdistributive(arg, op_example) for arg in expr.args)
        args = tuple(arg.simplify() for arg in args)
        if len(args) == 1:
            return args[0]

        expr = expr_class(*args)

        dualoperation = op_example.dual
        if isinstance(expr, dualoperation):
            expr = expr.distributive()
        return expr