Prove the following tautology: $\big[(p\leftrightarrow q) \land (\lnot q \to r) \land (p \to r)\big]\to r $ 
Prove the following tautology:
$$\big[(p\leftrightarrow q) \land (\lnot q \to r) \land (p \to
 r)\big]\to r $$

My effort
I am trying to prove this with a direct reasoning,i.e without using truth tables.
Now since $ \lnot q \to r $ and $p \to r $ ,I think it follows that I can rewrite $$\big[(p\leftrightarrow q) \land (\lnot q \to r) \land (p \to
 r)\big]=\big[(p \land \lnot q) \to r \big] \to r $$
which would be the proof for it,but I am not so sure :I just started studying  math logic.
In what other ways (excluding truth table) could this problem be solved  ?

Here is a natural deduction proof in a Fitch-style proof checker:

The law of the excluded middle (LEM) on $Q \lor \neg Q$ is referenced at the end.

Kevin Klement's JavaScript/PHP Fitch-style natural deduction proof editor and checker http://proofs.openlogicproject.org/
