General rules for transforming boolean equations?

44 Views Asked by At

Are there general or restricted rules for transforming between equivalent boolean equations?

A concrete problem that I have is given the following equation:

p -> (r <-> q) = True

Is it possible to transform it to an equation with r on the left and no r on the right? Something like this:

r = f(p, q)

I expanded -> and <-> to just or and and, then multiply both sides by p, but got stuck:

~p \/ (rq \/ ~r~q) = True
rpq \/ ~rp~q = p