Documentation

Mathlib.NumberTheory.Fermat

Fermat numbers #

The Fermat numbers are a sequence of natural numbers defined as Nat.fermatNumber n = 2^(2^n) + 1, for all natural numbers n.

Main theorems #

Fermat numbers: the n-th Fermat number is defined as 2^(2^n) + 1.

Equations
    Instances For

      Goldbach's theorem : no two distinct Fermat numbers share a common factor greater than one.

      From a letter to Euler, see page 37 in [juskevic2022].

      theorem Nat.pow_of_pow_add_prime {a n : } (ha : 1 < a) (hn : n 0) (hP : Prime (a ^ n + 1)) :
      ∃ (m : ), n = 2 ^ m

      Prime a ^ n + 1 implies n is a power of two (Fermat primes).

      theorem Nat.pepin_primality (n : ) (h : 3 ^ 2 ^ (2 ^ n - 1) = -1) :

      Fₙ = 2^(2^n)+1 is prime if 3^(2^(2^n-1)) = -1 mod Fₙ (Pépin's test).

      theorem Nat.pepin_primality' (n : ) (h : 3 ^ ((n.fermatNumber - 1) / 2) = -1) :

      Fₙ = 2^(2^n)+1 is prime if 3^((Fₙ - 1)/2) = -1 mod Fₙ (Pépin's test).

      theorem Nat.pow_pow_add_primeFactors_one_lt {a n p : } (hp : Prime p) (hp2 : p 2) (hpdvd : p a ^ 2 ^ n + 1) :
      ∃ (k : ), p = k * 2 ^ (n + 1) + 1

      Prime factors of a ^ (2 ^ n) + 1 are of form k * 2 ^ (n + 1) + 1.

      theorem Nat.fermat_primeFactors_one_lt (n p : ) (hn : 1 < n) (hp : Prime p) (hpdvd : p n.fermatNumber) :
      ∃ (k : ), p = k * 2 ^ (n + 2) + 1

      Primality of Mersenne numbers Mₙ = a ^ n - 1 #

      theorem Nat.prime_of_pow_sub_one_prime {a n : } (hn1 : n 1) (hP : Prime (a ^ n - 1)) :
      a = 2 Prime n

      Prime a ^ n - 1 implies a = 2 and prime n.