Documentation

Mathlib.NumberTheory.Wilson

Wilson's theorem. #

This file contains a proof of Wilson's theorem.

The heavy lifting is mostly done by the previous wilsons_lemma, but here we also prove the other logical direction.

This could be generalized to similar results about finite abelian groups.

References #

TODO #

@[simp]
theorem ZMod.wilsons_lemma (p : ) [Fact p.Prime] :
(p - 1).factorial = -1

Wilson's Lemma: the product of 1, ..., p-1 is -1 modulo p.

@[simp]
theorem ZMod.prod_Ico_one_prime (p : ) [Fact p.Prime] :
((Finset.Ico 1 p).prod fun (x : ) => x) = -1
theorem Nat.prime_of_fac_equiv_neg_one {n : } (h : (n - 1).factorial = -1) (h1 : n 1) :
n.Prime

For n ≠ 1, (n-1)! is congruent to -1 modulo n only if n is prime.

theorem Nat.prime_iff_fac_equiv_neg_one {n : } (h : n 1) :
n.Prime (n - 1).factorial = -1

Wilson's Theorem: For n ≠ 1, (n-1)! is congruent to -1 modulo n iff n is prime.