Re: Boolean algebra
- To: mathgroup at smc.vnet.net
- Subject: [mg69396] Re: Boolean algebra
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 10 Sep 2006 07:20:28 -0400 (EDT)
- References: <edtrbb$lcb$1@smc.vnet.net>
Menace schrieb: > I'd like to solve the following problem in Mathematica, > > Given are the following preliminaries: > (a1 || a2)=True > (a1 && a2) = False > > Then, given the following conjunctive normal form: > > (b1 || a1) && (b1 || a2) > > This can be simpliefied to: b1 || (a1 && a2) > > Given the prelininaries I'd like Mathematica to simplify this to: b1. > However, I cant figure out how to do this. I tried the following: > > prelims := {(a1 && a2) -> False, (a1 || a2) -> True}; > f1 := (b1 || a2) && (b1 || a1); > Simplify[f1] /. prelims > > and this seems to work. However > > f2 := (b1 || a1 || c1) && (b2 || a2 || a1); > Simplify[f2] /. prelims > > evaluates to: (b1 || a1 || c1) && (b2 || a2 || a1) instead of b1 || a1 > || c1. > The reason of this seems to be the order in which a2 and a1 occur in > f2. How can I make sure it works regardless of the order of a1 and a2? > Hi, Simplify allows to set some Information as 2nd parameter: Simplify[(b1 || a1) && (b1 || a2), ! (a1 && a2)] evaluates to b1 as desired. Regards, Peter