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

*To*: mathgroup at smc.vnet.net*Subject*: [mg62142] Re: ((a&&b)||c)==((a||c)&&(b||c))*From*: "Steven T. Hatton" <hattons at globalsymmetry.com>*Date*: Sat, 12 Nov 2005 03:32:39 -0500 (EST)*References*: <200511090845.DAA17387@smc.vnet.net> <43721D94.9050307@wolfram.com> <dkv013$7ts$1@smc.vnet.net> <dl1juo$25$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

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: http://www.mathematica-users.org/ Math for Comp Sci http://www.ifi.unizh.ch/math/bmwcs/master.html Math for the WWW: http://www.w3.org/Math/

**References**:**((a&&b)||c)==((a||c)&&(b||c))***From:*"Steven T. Hatton" <hattons@globalsymmetry.com>