What approach would I take to this logical proof?

I'm currently trying to prove this.

$(p \to q) \land (q \to r) \land (r \to p) \iff p \land q \land r ~\lor~ \lnot p \land\lnot q \land\lnot r$

After this step, I've gotten stuck. Normally I can do these just fine, but this one seems much less obvious than the ones I've been given previously.

$\iff (\lnot p \lor q) \land (\lnot q \lor r) \land (\lnot r \lor p)$ Law of Implication (3x)

• The easiest proof is of course a truth table (or karnaugh map). If I was allowed to choose an approach it would be this. – user400188 Feb 16 '17 at 5:26

\begin{align} &(p\to q)\land(q\to r)\land (r\to p) \\ \iff &(\lnot p\lor q)\land(\lnot q\lor r)\land(\lnot r\lor p) &&\text{Implication Equivalence} \\ \iff &(p\lor \lnot r)\land(\lnot p\lor q)\land (r\lor\lnot q) && \text{Commutation} \\ \iff &(p\land(\lnot p\lor q)\land (r\lor \lnot q))~\lor~(\lnot r\land(\lnot p\lor q)\land (r\lor\lnot q)) & &\text{Distribution} \\ \iff &(p\land(\lnot p\lor q)\land (\lnot q\lor r))~\lor~(\lnot r\land (r\lor\lnot q)\land(q\lor \lnot p)) && \text{Commutation} \\ \vdots\quad&\end{align}
• $\qquad (p\wedge q)\wedge(\neg q\vee r) \\ \iff (p\wedge (q\wedge(\neg q\vee r))) \\ \iff p\wedge ((q\wedge\neg q)\vee(q\wedge r)) \\ \iff p\wedge (q\wedge r)$ – Graham Kemp Feb 16 '17 at 6:48