(p<-->) = (p and q) V (negation p and negation q)
A couple of questions.
1. Are you supposed to use truth tables or inference rules? If the rules, then which? There are many sets of inference rules, just like there are many programming languages that one can use to write a certain program.
2. Is this equivalence obvious to you on some level? It says, if p and q are equivalent, then either they are both true or they are both false, and conversely. This should be understandable to somebody who has not necessarily studied logic.
It is just a matter of applying DeMorgen’s equivlances.
$\displaystyle p \leftrightarrow q$
$\displaystyle \left( {p \to q} \right) \wedge \left( {q \to p} \right)$
$\displaystyle \left( {\neg p \vee q} \right) \wedge \left( {\neg q \vee p} \right)$
Expand the above $\displaystyle \left[ {\left( {\neg p \wedge \neg q} \right) \vee \underbrace {\left( {\neg p \wedge \neg p} \right)}_{false}} \right] \vee \left[ {\underbrace {\left( {q \wedge \neg q} \right)}_{false} \vee \left( {p \wedge q} \right)} \right]$
In disjunctions we can drop false terms: $\displaystyle \left[ {\left( {\neg p \wedge \neg q} \right)} \right] \vee \left[ {\left( {p \wedge q} \right)} \right]$