MathGroup Archive 2012

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

Search the Archive

Re: strange booleanconvert behavior?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127374] Re: strange booleanconvert behavior?
  • From: Francisco Gutierrez <fgutiers2002 at yahoo.com>
  • Date: Fri, 20 Jul 2012 03:53:53 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20120710044211.04D95683D@smc.vnet.net> <20120711062003.57D19685F@smc.vnet.net>
  • Reply-to: Francisco Gutierrez <fgutiers2002 at yahoo.com>

Many thanks to Dave Snead and Peter Pein for their responses to my query about BooleanConvert behavior.

The solutions worked. At the same time, it is clear that BooleanConvert has a quirk (or the documentation is severely incomplete). Hope in version 9 it is fixed

Francisco

From: Dave Snead <dsnead6 at charter.net>
To: mathgroup at smc.vnet.net 
Sent: Wednesday, July 11, 2012 1:20 AM
Subject: [mg127374] Re: strange booleanconvert behavior?

Found the same problem.
Clearly Mathematica isn't working correctly when the number of sublists is 
more than 9.
As a work around consider

num1={{a,b,c,d},{a,b,c,e},{a,b,c,f},{a,b,c,g},{a,b,c,h},{a,b,c,i},{a,b,c,j},{a,b,c,k},{a,b,c,l},{a,b,c,m},{a,b,c,n}}
num2=Apply[Or,Apply[And,#]&/@num1]
x = BooleanConvert[Take[num2, 9], "CNF"];
y = BooleanConvert[Drop[num2, 9], "CNF"];
BooleanConvert[x || y, "CNF"]

Cheers,
Dave


-----Original Message----- 
From: Francisco Gutierrez
Sent: Monday, July 09, 2012 9:42 PM
To: mathgroup at smc.vnet.net
Subject: [mg127374] strange booleanconvert behavior?

Dear Group:
Say I have the following expression:
num1={{a,b,c,d},{a,b,c,e},{a,b,c,f},{a,b,c,g},{a,b,c,h},{a,b,c,i},{a,b,c,j},{a,b,c,k},{a,b,c,l},{a,b,c,m},{a,b,c,n}}


I transform it into a logical expression:
num2=Apply[Or,Apply[And,#]&/@num1]

I want to simplify this to a CNF, and the obvious function to use is Boolean 
Convert. Suppose I apply it to NINE elements of num2:
BooleanConvert[Take[num2,9],"CNF"]
The output is=

a&&b&&c&&(d||e||f||g||h||i||j||k||l)

It works perfectly well!


However, if I apply BooleanConvert to the whole expression I get back a 
bunch of crap. Also if I apply it to 10 elements of num2.
In sum, it appears that BooleanConvert only works well for 9 expressions or 
less. Tried this with other two examples, and found
exactly the same result.

All this in Mathematica 8

Can somebody help me?
Francisco


  • Prev by Date: Finding a sum
  • Next by Date: Re: Evaluate code fragment without making new cell for it?
  • Previous by thread: Re: strange booleanconvert behavior?
  • Next by thread: Re: strange booleanconvert behavior?