MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: ((a&&b)||c)==((a||c)&&(b||c))

  • To: mathgroup at
  • Subject: [mg62142] Re: ((a&&b)||c)==((a||c)&&(b||c))
  • From: "Steven T. Hatton" <hattons at>
  • Date: Sat, 12 Nov 2005 03:32:39 -0500 (EST)
  • References: <> <> <dkv013$7ts$> <dl1juo$25$>
  • Sender: owner-wri-mathgroup at

John Doty wrote:

> Steven T. Hatton wrote:
>> On Wednesday 09 November 2005 11:02 am, Daniel Lichtblau wrote:
>>>Equal does not do logical manipulations on its operands.
>> That's part of what I'm trying to understand. Mathamatica AFAIK takes
>> expressions and transforms them into the simplest form possible, and then
>> does pattern patching.
> No, that's not what it does. There are a few transformations it does
> automatically, but they don't add up to anything like a transformation
> to "simplest form possible". 

I should have said "most specific form available".  That is, a symbol has
downvalues, and upvalues associated with it.  These are listed in
descending order of specificity according to some mechanism for determining
specificity which I do not understand.  The user can override this ordering
and assert the order of transformation rules if desired.  I acknowledge
that specificity and simplicity are not necessarily the same thing.

> The main difference is that Simplify[] won't apply LogicalExpand[]
> automatically. I suppose this would be hazardous if some symbols didn't
> represent booleans. However:
> In[10]:= Simplify[((a && b) || c) == ((a || c) && (b || c)),
>    TransformationFunctions -> {Automatic, LogicalExpand}]
> Out[10]= True
> -jpd

That looks useful, but following what Daniel Lichtblau posted, it looks like
LogicalExpand isn't the whole answer either.  I believe I need a function
that performs Quine-McCluskey minimization in order to get a
'deterministic' biconditional.
The Mathematica Wiki:
Math for Comp Sci
Math for the WWW:

  • Prev by Date: Re: Re: Plot Angle between Vectors
  • Next by Date: Re: Re: Re: integer solution
  • Previous by thread: Re: ((a&&b)||c)==((a||c)&&(b||c))
  • Next by thread: Re: ((a&&b)||c)==((a||c)&&(b||c))