# sympy__sympy-21055 # Loki Mode Multi-Agent Patch # Attempts: 1 --- a/sympy/assumptions/refine.py +++ b/sympy/assumptions/refine.py @@ -300,6 +300,35 @@ def refine_matrixelement(expr, assumptions): return expr +def refine_arg(expr, assumptions): + """ + Handler for the arg function. + + Examples + ======== + + >>> from sympy import Q, arg, refine + >>> from sympy.abc import a + >>> refine(arg(a), Q.positive(a)) + 0 + >>> refine(arg(a), Q.negative(a)) + pi + """ + from sympy.functions.elementary.complexes import arg + from sympy.core import S + arg_val = expr.args[0] + if ask(Q.positive(arg_val), assumptions): + return S.Zero + if ask(Q.negative(arg_val), assumptions): + return S.Pi + if ask(Q.zero(arg_val), assumptions): + return S.NaN + return expr + + handlers_dict = { 'Abs': refine_abs, 'Pow': refine_Pow, @@ -308,5 +337,6 @@ handlers_dict = { 'StrictGreaterThan': refine_Relational, 'StrictLessThan': refine_Relational, 'im': refine_im, - 'MatrixElement': refine_matrixelement + 'MatrixElement': refine_matrixelement, + 'arg': refine_arg }