# Help with propositional formulas

**Graham Klyne
**
GK@ninebynine.org

*Sun, 20 Jul 2003 10:39:41 +0100*

There's a 'powerset' thread on this list [1][2] starting 4th June which I
think contains some of the answers you seek. Read and you shall learn!
#g
--
[1] List archive: http://www.haskell.org/pipermail/haskell-cafe/
[2] Powerset thread
starts: http://www.haskell.org/pipermail/haskell-cafe/2003-June/004463.html
(Read into the thread, because there are some problems with the code that
appears earlier in the thread.)
At 22:55 19/07/03 -0300, Douglas O. Matoso wrote:
>*Hi,
*>*
*>*I have an school assignment that asks to implement an truth table of
*>*propositional formulas. I'm having difficulties in the following part:
*>*
*>*data Prop = Var Char | Not Prop | And Prop Prop | Or Prop Prop
*>*type Subst = [(Char,Bool)]
*>*
*>*- Define a function
*>*bools :: Int -> [[Bool]]
*>*that calculates all possible lists of logical values of a specific length.
*>*For
*>*example, bools 2 should give the following list:
*>*[[False,False],
*>*[False,True ],
*>*[True ,False],
*>*[True ,True ]]
*>*
*>*- Define a function
*>*substs :: Prop -> [Subst]
*>*that calculates all possible substitutions for the variables of a
*>*proposition.
*>*
*>*For example, substs p2 should give the following list:
*>*[[('A',False),('B',False)],
*>*[('A',False),('B',True) ],
*>*[('A',True) ,('B',False)],
*>*[('A',True) ,('B',True) ]]
*>*
*>*
*>*I would be thankful for any help.
*>*
*>*Douglas Matoso
*>*
*>*
*>***************************************************************************************************
*>*** Este email foi scaneado contra virus e conteudo malicioso **
*>***************************************************************************************************
*>*
*>*_______________________________________________
*>*Haskell-Cafe mailing list
*>*Haskell-Cafe@haskell.org
*>*http://www.haskell.org/mailman/listinfo/haskell-cafe
*
-------------------
Graham Klyne
<GK@NineByNine.org>
PGP: 0FAA 69FF C083 000B A2E9 A131 01B9 1C7A DBCA CB5E