While preparing some lecture notes for next semester and going back to basics (set theory and proof strategies) I came along the following simple question which is about proving theorems in general but exemplified here by the proof by contradiction:
How do you see whether a proof is not only the necessary but also sufficient condition to arive at a "q.e.d"?
As an example let's take the simple example of irrationality of $\sqrt{2}$. Here you suppose that the result will be rational and arrive at a contradiction, so you say it must be irrational because there are only those two possibilities. q.e.d - case closed.
When you look at the Zermelo-Russell paradox you have a similar situation: Two cases which are mutually exclusive: Either $R \in R$ or $R \not \in R$. You then suppose e.g. that $R \in R$ and arrive at a contradiction... but you don't stop there! Otherwise it would not be a paradox! You also test the other case and, again, arrive at a contradiction!
It would not be enough to stop after the first part and arrive at the result that because you arrived at a contradiction it must be the other case, so $R \not \in R$ q.e.d.
So my question is how do you ensure that you can trust your proof and haven't run into another paradox? One possibility where something like this could happen are obviously situations that are self-referencing. But are these the only possibilites? And some proofs are quite long and involved so that even this could slip through, can it not?
Full disclosure: I asked this question on mathoverflow but it got closed (although upvoted!) so I guess it was not sophisticated enough for that forum - yet I am still looking for a satisfying answer...