I have a simple (maybe even silly) question. Can one prove that there is only one proof?
The reason why I came up with the question is the proof of the famous Fermat's theorem by Andrew Wiles. Also Fermat himself said that he had a proof (although he said the margin was to small to write it down). I was wondering, what if you could prove that the way Andrew Wiles proved Fermat's theorem is the only way to prove this theorem, you could cancel out that Fermat had a proof himself (which would be quite hard I admit). (Indeed, one needs to define what is a single proof as @Bram28 says.)
Thank you for your comments.
Your question is rather a general one, but there has been quite a lot of research into logical systems where it makes sense to identify proofs modulo some natural notion of equivalence and then ask questions like "how many distinct proofs does such-and-such a proposition have".
The Curry-Howard correspondence for various logics provides contexts in which it is natural to ask about the number of proofs of a proposition. Under the Curry-Howard correspondence, propositions correspond to something like types in a functional programming language and well-typed functions correspond to proofs. The simplest example is simple type theory, where the logical language is built up from primitive types using implication only and implication is viewed as the function-arrow in the programming language. Terms of the $\lambda$-calculus that can be typed in simple type theory correspond to proofs in minimal propositional logic (i.e., intuitionistic logic but without the rule ex falso quodlibet).
The inhabitants of the type $(A \to A) \to (A \to A)$ are the Church numerals: the sequence of $\lambda$-terms that iterate their argument of type $A \to A$, $0, 1, 2, 3, \dots$ times ($\lambda f.\lambda x.x$, $\lambda f.\lambda x.f x$, $\lambda f. \lambda x.f(f x)$, $\ldots$),
The unique inhabitant of $A \to (B \to A)$ is the function $\lambda x.\lambda y.x$. Here $\lambda$-terms are being compared for equality modulo $\beta\eta$-equivalence (so something like $\lambda x .\lambda y.(\lambda z . z)x$ is considered equal to $\lambda x.\lambda y.x$.
See the book Proofs and Types by Girard, Lafont and Taylor for more about the Curry-Howard correspondence. It discusses much more powerful logics than simple type theory, such as Gödel's system $T$ and Girard's system $F$.
See the book Basic Simple Type Theory by Hindley for more about simple type theory. In particular, chapter 8 presents Ben-Yelles' algorithm for counting and enumerating the inhabitants of a type, or, equivalently, in logical terminology counting and enumerating the proofs of a proposition.