On Mon, Mar 4, 2013 at 6:45 PM, Sachin Joglekar <notifications@github.com>
 wrote:

> In sympy/logic/inference.py:
>
> > @@ -22,9 +50,12 @@ def literal_symbol(literal):
> >      """
> >
> >      if literal.func is Not:
>
> Not((x, y)) seems to be a curious use of Not. What does it signify?
>

garbage (that isn't discriminated against in Not)

> I don't think its a literal. If that is the case, then your code (using
> 'elif literal.is_Not and len(literal.args) == 1:') might give the wrong
> output.
>

Although the args have a length of 1, the error will be raise when on the
next pass it is found that the argument is not a symbol or a Not. If there
is a case where there actually were more than one argument then the test of
arg length being one would fail and the error would be raised.

> I will modify is_literal to give True for True and False also. In that
> case, we would probably have to figure out what literal_symbol(True) will
> do.
>

Unless there is a use-case for `is_literal`, I wouldn't add it.

Also, is there any logical expression that would retain an argument of True
or False? If not, then you will never encounter it.