Look at Lagrange's Theorem here. It's a tiny bit different than what you said. Hopefully that clears things up for you.
Lagrange's Theorem: let p be any prime and with ≡/≡ 0 (mod p). Then f(x) ≡ 0 (mod p) has at most n solutions.
Use the above theorem to prove Wilson's theorem.
Hint: Let for an odd prime p.
Proof:
Expanding,
= where the are some coefficients
By the above theorem, f has at most p-2 roots mod p IF ≡/≡ 0 (mod p). (*)
But by Fermat's theorem, for a=1,2,...,p-1, ≡ 0 (mod p).
So for a=1,2,...,p-1, f(a) ≡ 0 (mod p).
So f has at least p-1 roots mod p. (**)
(*) and (**) contradict unless f(x) ≡ 0 (mod p). Therefore, we must have f(x) ≡ 0 (mod p).
=> f(0)=(-1)(-2)...(-(p-1)) - (-1) ≡ 0 (mod p)
=> ≡ 0 (mod p)
For odd primes p, p-1 is even, so (p-1)! ≡ -1 (mod p)
(For p=2, check directly.)
=========================================
I don't understand the two lines in red.
I understand that there is a contradiction, but why does this imply that f(x) ≡ 0 (mod p)? Why in this case, there will be no contradiction? I'm totally lost here...
Also, f(x) ≡ 0 (mod p) doesn't necessarily mean it holds for EVERY integer x, so why can we substitute x=0 and say that f(0) ≡ 0 (mod p)? What is the justification for this step?
I hope someone can explain this proof.
Thank you very much!
[also under discussion in math link forum]
A typical proof is that, use the same polynomial f(x), argue that it has degree at most p-2, so if f(x) is not the zero polynomial, then it must have at most p-2 roots. But then argue that 1~p-1 are all roots, so f(x)=0 (mod p) (here the equality means f(x) equals the zero polynomial, not LHS=RHS when you plug in every number mod p). Then compute the constant term of f(x) and you'll get Wilson.
The proof that OP presents involves , which is definitely confusing since it is always 0 mod p if p is odd prime, and it does nothing to prove the theorem.