RE:
- To: mathgroup at smc.vnet.net
- Subject: [mg46412] RE:
- From: "David Park" <djmp at earthlink.net>
- Date: Tue, 17 Feb 2004 07:05:45 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Sasha,
Definitely not a bug because pattern matching, not algebra, is involved.
a + b // FullForm
Plus[a, b]
-1(a + b) // FullForm
Plus[Times[-1, a], Times[-1, b]]
-2(a + b) // FullForm
Times[-2, Plus[a, b]]
You could get something more to your liking by using the pattern
(a + b) | Expand[k_.(a + b)
testlist = {a + b, 2(a + b),
2(a + b) // Expand, -(a + b), -2(a + b), -2(a + b) // Expand, k(a + b),
k(a + b) // Expand, k1 a + k2 b}
{a + b, 2 (a + b), 2 a + 2 b, -a - b, -2 (a + b), -2 a - 2 b, (a + b) k,
a k + b k, a k1 + b k2}
FreeQ[#, (a + b) | Expand[k_.(a + b)]] & /@ testlist
{False, False, False, False, False, False, False, False, True}
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
From: Oleksandr Pavlyk [mailto:pavlyk at phys.psu.edu]
To: mathgroup at smc.vnet.net
Just curious, is it to be considered a bug that
In[1]:= FreeQ[-1 (a+b), a+b ]
Out[1]= True
and at the same time
In[2]:=FreeQ[ -2 (a+b), a+b ]
Out[2]= False
I would appereciate community's opinion on the issue.
Thank you,
Sasha