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.