/-
Copyright 2026 The Formal Conjectures Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/
import FormalConjecturesUtilDivisibility of $2^n + 1$ by $n$
A56777 lists composite numbers $n$ satisfying both $\varphi(n+12) = \varphi(n) + 12$ and $\sigma(n+12) = \sigma(n) + 12$.
The conjectures state identities connecting A56777 and prime quadruples (A7530), as well as congruences satisfied by the members of A56777.
References:
namespace OeisA56777open Natopen scoped ArithmeticFunction.sigmaA composite number $n$ is in the sequence A56777 if it satisfies both $\varphi(n+12) = \varphi(n) + 12$ and $\sigma(n+12) = \sigma(n) + 12$.
def A (n : ℕ) : Prop :=
¬n.Prime ∧ 1 < n ∧ totient (n + 12) = totient n + 12 ∧ σ 1 (n + 12) = σ 1 n + 12A number $n$ comes from a prime quadruple $(p, p+2, p+6, p+8)$ if $n = p(p+8)$ for some prime $p$ where $p$, $p+2$, $p+6$, $p+8$ are all prime.
def ComesFromPrimeQuadruple (n : ℕ) : Prop :=
∃ p : ℕ, p.Prime ∧ (p + 2).Prime ∧ (p + 6).Prime ∧ (p + 8).Prime ∧ n = p * (p + 8)$65$ is in the sequence A56777.
@[category test, AMS 11]
theorem a_65 : A 65 := ⊢ A 65
refine ⟨?_, ⊢ 1 < 65 All goals completed! 🐙, ?_, ?_⟩
⊢ ¬Nat.Prime 65 ⊢ ¬Nat.Prime (5 * 13)
exact not_prime_mul (⊢ 5 ≠ 1 All goals completed! 🐙) (⊢ 13 ≠ 1 All goals completed! 🐙)
⊢ φ (65 + 12) = φ 65 + 12 All goals completed! 🐙
⊢ (σ 1) (65 + 12) = (σ 1) 65 + 12 All goals completed! 🐙$209$ is in the sequence A56777.
All goals completed! 🐙
· refine_3 ⊢ (σ 1) 221 = (σ 1) 209 + 12 decide All goals completed! 🐙Numbers coming from prime quadruples are in the sequence A56777.
@[category textbook, AMS 11]
theorem a_of_comesFromPrimeQuadruple {n : ℕ} (h : ComesFromPrimeQuadruple n) : A n := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n
obtain ⟨p, hp, hp2, hp6, hp8, rfl⟩ := h p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)⊢ A (p * (p + 8))
-- n + 12 = p * (p+8) + 12 = (p+2) * (p+6)
have hsum : p * (p + 8) + 12 = (p + 2) * (p + 6) := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)⊢ A (p * (p + 8)) ring p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)⊢ A (p * (p + 8)) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)⊢ A (p * (p + 8))
-- coprimality facts between the four primes
have hne_p_p8 : p ≠ p + 8 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8⊢ A (p * (p + 8)) omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8⊢ A (p * (p + 8)) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8⊢ A (p * (p + 8))
have hne_p2_p6 : p + 2 ≠ p + 6 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6⊢ A (p * (p + 8)) omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6⊢ A (p * (p + 8)) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6⊢ A (p * (p + 8))
have hcop1 : Nat.Coprime p (p + 8) := (Nat.coprime_primes hp hp8).mpr hne_p_p8 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)⊢ A (p * (p + 8))
have hcop2 : Nat.Coprime (p + 2) (p + 6) := (Nat.coprime_primes hp2 hp6).mpr hne_p2_p6 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ A (p * (p + 8))
refine ⟨?_, ?_, ?_, ?_⟩ refine_1 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ ¬Nat.Prime (p * (p + 8))refine_2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ 1 < p * (p + 8)refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ φ (p * (p + 8) + 12) = φ (p * (p + 8)) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p * (p + 8) + 12) = (σ 1) (p * (p + 8)) + 12
-- ¬ Prime (p * (p+8))
· refine_1 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ ¬Nat.Prime (p * (p + 8)) exact Nat.not_prime_mul hp.one_lt.ne' (by p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ p + 8 ≠ 1 have := hp8.one_lt p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)this:1 < p + 8⊢ p + 8 ≠ 1; omega All goals completed! 🐙)
-- 1 < p * (p+8)
· refine_2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ 1 < p * (p + 8) have h1 : 2 ≤ p := hp.two_le refine_2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)h1:2 ≤ p⊢ 1 < p * (p + 8)
have h2 : 10 ≤ p + 8 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n refine_2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)h1:2 ≤ ph2:10 ≤ p + 8⊢ 1 < p * (p + 8) omegarefine_2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)h1:2 ≤ ph2:10 ≤ p + 8⊢ 1 < p * (p + 8)refine_2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)h1:2 ≤ ph2:10 ≤ p + 8⊢ 1 < p * (p + 8)
nlinarith All goals completed! 🐙
-- totient: φ((p+2)(p+6)) = φ(p(p+8)) + 12
· refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ φ (p * (p + 8) + 12) = φ (p * (p + 8)) + 12 rw [hsum, refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ φ ((p + 2) * (p + 6)) = φ (p * (p + 8)) + 12 refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12 Nat.totient_mul hcop2, refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ φ (p + 2) * φ (p + 6) = φ (p * (p + 8)) + 12refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12 Nat.totient_mul hcop1, refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ φ (p + 2) * φ (p + 6) = φ p * φ (p + 8) + 12refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12
Nat.totient_prime hp, refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ φ (p + 2) * φ (p + 6) = (p - 1) * φ (p + 8) + 12refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12 Nat.totient_prime hp2, refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * φ (p + 6) = (p - 1) * φ (p + 8) + 12refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12
Nat.totient_prime hp6, refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * φ (p + 8) + 12refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12 Nat.totient_prime hp8 refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12]refine_3 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (p + 2 - 1) * (p + 6 - 1) = (p - 1) * (p + 8 - 1) + 12
zify [show 1 ≤ p from hp.one_lt.le, show 1 ≤ p + 2 by n:ℕh:ComesFromPrimeQuadruple n⊢ A n omega All goals completed! 🐙,
show 1 ≤ p + 6 by n:ℕh:ComesFromPrimeQuadruple n⊢ A n omega All goals completed! 🐙, show 1 ≤ p + 8 by n:ℕh:ComesFromPrimeQuadruple n⊢ A n omega All goals completed! 🐙]
ring All goals completed! 🐙
-- sigma: σ₁((p+2)(p+6)) = σ₁(p(p+8)) + 12
· refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p * (p + 8) + 12) = (σ 1) (p * (p + 8)) + 12 rw [hsum, refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) ((p + 2) * (p + 6)) = (σ 1) (p * (p + 8)) + 12 refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12 ArithmeticFunction.isMultiplicative_sigma.map_mul_of_coprime hcop2, refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) (p * (p + 8)) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
ArithmeticFunction.isMultiplicative_sigma.map_mul_of_coprime hcop1 refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12]refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have e1 : ArithmeticFunction.sigma 1 p = p + 1 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have := ArithmeticFunction.sigma_one_apply_prime_pow (p := p) (i := 1) hp p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)this:(σ 1) (p ^ 1) = ∑ k ∈ Finset.range (1 + 1), p ^ k⊢ (σ 1) p = p + 1refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
simpa using thisrefine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have e2 : ArithmeticFunction.sigma 1 (p + 2) = (p + 2) + 1 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have := ArithmeticFunction.sigma_one_apply_prime_pow (p := p + 2) (i := 1) hp2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1this:(σ 1) ((p + 2) ^ 1) = ∑ k ∈ Finset.range (1 + 1), (p + 2) ^ k⊢ (σ 1) (p + 2) = p + 2 + 1refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
simpa using thisrefine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have e6 : ArithmeticFunction.sigma 1 (p + 6) = (p + 6) + 1 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have := ArithmeticFunction.sigma_one_apply_prime_pow (p := p + 6) (i := 1) hp6 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1this:(σ 1) ((p + 6) ^ 1) = ∑ k ∈ Finset.range (1 + 1), (p + 6) ^ k⊢ (σ 1) (p + 6) = p + 6 + 1refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
simpa using thisrefine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have e8 : ArithmeticFunction.sigma 1 (p + 8) = (p + 8) + 1 := by n:ℕh:ComesFromPrimeQuadruple n⊢ A n refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
have := ArithmeticFunction.sigma_one_apply_prime_pow (p := p + 8) (i := 1) hp8 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1this:(σ 1) ((p + 8) ^ 1) = ∑ k ∈ Finset.range (1 + 1), (p + 8) ^ k⊢ (σ 1) (p + 8) = p + 8 + 1refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
simpa using thisrefine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (σ 1) p * (σ 1) (p + 8) + 12
rw [e1, refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (σ 1) (p + 2) * (σ 1) (p + 6) = (p + 1) * (σ 1) (p + 8) + 12 refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (p + 8 + 1) + 12 e2, refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (σ 1) (p + 6) = (p + 1) * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (p + 8 + 1) + 12 e6, refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (σ 1) (p + 8) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (p + 8 + 1) + 12 e8 refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (p + 8 + 1) + 12refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (p + 8 + 1) + 12]refine_4 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hsum:p * (p + 8) + 12 = (p + 2) * (p + 6)hne_p_p8:p ≠ p + 8hne_p2_p6:p + 2 ≠ p + 6hcop1:p.Coprime (p + 8)hcop2:(p + 2).Coprime (p + 6)e1:(σ 1) p = p + 1e2:(σ 1) (p + 2) = p + 2 + 1e6:(σ 1) (p + 6) = p + 6 + 1e8:(σ 1) (p + 8) = p + 8 + 1⊢ (p + 2 + 1) * (p + 6 + 1) = (p + 1) * (p + 8 + 1) + 12
ring All goals completed! 🐙$11009$ is in the sequence A56777.
@[category test, AMS 11]
theorem a_11009 : A 11009 := by ⊢ A 11009
apply a_of_comesFromPrimeQuadruple ⊢ ComesFromPrimeQuadruple 11009
exact ⟨101, by ⊢ Nat.Prime 101 decide All goals completed! 🐙, by ⊢ Nat.Prime (101 + 2) decide All goals completed! 🐙, by ⊢ Nat.Prime (101 + 6) decide All goals completed! 🐙, by ⊢ Nat.Prime (101 + 8) decide All goals completed! 🐙, by ⊢ 11009 = 101 * (101 + 8) rfl All goals completed! 🐙⟩All members of the sequence A56777 come from prime quadruples.
@[category research open, AMS 11]
theorem comesFromPrimeQuadruple_of_a {n : ℕ} (h : A n) : ComesFromPrimeQuadruple n := by n:ℕh:A n⊢ ComesFromPrimeQuadruple n
sorry All goals completed! 🐙Numbers coming from prime quadruples satisfy $n \equiv 65 \pmod{72}$.
@[category textbook, AMS 11]
theorem mod_72_of_comesFromPrimeQuadruple {n : ℕ} (h : ComesFromPrimeQuadruple n) :
n % 72 = 65 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65
obtain ⟨p, hp, hp2, hp6, hp8, rfl⟩ := h p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)⊢ p * (p + 8) % 72 = 65
have hp5 : 5 ≤ p := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ p⊢ p * (p + 8) % 72 = 65
by_contra! hlt p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hlt:p < 5⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ p⊢ p * (p + 8) % 72 = 65
interval_cases p «0» p:ℕhp:Nat.Prime 0hp2:Nat.Prime (0 + 2)hp6:Nat.Prime (0 + 6)hp8:Nat.Prime (0 + 8)hlt:0 < 5⊢ False«1» p:ℕhp:Nat.Prime 1hp2:Nat.Prime (1 + 2)hp6:Nat.Prime (1 + 6)hp8:Nat.Prime (1 + 8)hlt:1 < 5⊢ False«2» p:ℕhp:Nat.Prime 2hp2:Nat.Prime (2 + 2)hp6:Nat.Prime (2 + 6)hp8:Nat.Prime (2 + 8)hlt:2 < 5⊢ False«3» p:ℕhp:Nat.Prime 3hp2:Nat.Prime (3 + 2)hp6:Nat.Prime (3 + 6)hp8:Nat.Prime (3 + 8)hlt:3 < 5⊢ False«4» p:ℕhp:Nat.Prime 4hp2:Nat.Prime (4 + 2)hp6:Nat.Prime (4 + 6)hp8:Nat.Prime (4 + 8)hlt:4 < 5⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ p⊢ p * (p + 8) % 72 = 65 <;> «0» p:ℕhp:Nat.Prime 0hp2:Nat.Prime (0 + 2)hp6:Nat.Prime (0 + 6)hp8:Nat.Prime (0 + 8)hlt:0 < 5⊢ False«1» p:ℕhp:Nat.Prime 1hp2:Nat.Prime (1 + 2)hp6:Nat.Prime (1 + 6)hp8:Nat.Prime (1 + 8)hlt:1 < 5⊢ False«2» p:ℕhp:Nat.Prime 2hp2:Nat.Prime (2 + 2)hp6:Nat.Prime (2 + 6)hp8:Nat.Prime (2 + 8)hlt:2 < 5⊢ False«3» p:ℕhp:Nat.Prime 3hp2:Nat.Prime (3 + 2)hp6:Nat.Prime (3 + 6)hp8:Nat.Prime (3 + 8)hlt:3 < 5⊢ False«4» p:ℕhp:Nat.Prime 4hp2:Nat.Prime (4 + 2)hp6:Nat.Prime (4 + 6)hp8:Nat.Prime (4 + 8)hlt:4 < 5⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ p⊢ p * (p + 8) % 72 = 65 simp_all (config := { decide := true }) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ p⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ p⊢ p * (p + 8) % 72 = 65
have h2 : ¬ (2 ∣ p) := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65
intro hdvd p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ phdvd:2 ∣ p⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65; cases hp.eq_one_or_self_of_dvd 2 hdvd with | inl h => inl p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ phdvd:2 ∣ ph:2 = 1⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65 omega All goals completed! 🐙 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65 | inr h => inr p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ phdvd:2 ∣ ph:2 = p⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65 omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ p⊢ p * (p + 8) % 72 = 65
have h3 : ¬ (3 ∣ p) := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65
intro hdvd p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ phdvd:3 ∣ p⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65; cases hp.eq_one_or_self_of_dvd 3 hdvd with | inl h => inl p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ phdvd:3 ∣ ph:3 = 1⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65 omega All goals completed! 🐙 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65 | inr h => inr p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ phdvd:3 ∣ ph:3 = p⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65 omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ p⊢ p * (p + 8) % 72 = 65
have hmod2 : p % 2 = 1 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1⊢ p * (p + 8) % 72 = 65 omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1⊢ p * (p + 8) % 72 = 65
have hmod3 : p % 3 = 2 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65
have hne1 : p % 3 ≠ 1 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65
intro heq p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65
have h3dvd : 3 ∣ (p + 2) := ⟨p / 3 + 1, by p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1⊢ p + 2 = 3 * (p / 3 + 1) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1h3dvd:3 ∣ p + 2⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65 omega All goals completed! 🐙 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1h3dvd:3 ∣ p + 2⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65⟩ p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1h3dvd:3 ∣ p + 2⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65
cases hp2.eq_one_or_self_of_dvd 3 h3dvd with | inl h => inl p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1h3dvd:3 ∣ p + 2h:3 = 1⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65 omega All goals completed! 🐙 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65 | inr h => inr p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1heq:p % 3 = 1h3dvd:3 ∣ p + 2h:3 = p + 2⊢ False p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65 omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hne1:p % 3 ≠ 1⊢ p % 3 = 2 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65
omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2⊢ p * (p + 8) % 72 = 65
have hmod6 : p % 6 = 5 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5⊢ p * (p + 8) % 72 = 65 omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5⊢ p * (p + 8) % 72 = 65
set q := p / 6 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6⊢ p * (p + 8) % 72 = 65
have hp_eq : p = 6 * q + 5 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5⊢ p * (p + 8) % 72 = 65 omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5⊢ p * (p + 8) % 72 = 65
have hparity : 2 ∣ q * (q + 3) := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65
rcases Nat.even_or_odd q with ⟨r, hr⟩ | ⟨r, hr⟩ inl p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5r:ℕhr:q = r + r⊢ 2 ∣ q * (q + 3)inr p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5r:ℕhr:q = 2 * r + 1⊢ 2 ∣ q * (q + 3) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65
· inl p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5r:ℕhr:q = r + r⊢ 2 ∣ q * (q + 3) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65 exact dvd_mul_of_dvd_left ⟨r, by p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5r:ℕhr:q = r + r⊢ q = 2 * r p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65 omega All goals completed! 🐙 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65⟩ _
· inr p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5r:ℕhr:q = 2 * r + 1⊢ 2 ∣ q * (q + 3) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65 exact dvd_mul_of_dvd_right ⟨r + 2, by p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5r:ℕhr:q = 2 * r + 1⊢ q + 3 = 2 * (r + 2) p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65 omega All goals completed! 🐙 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65⟩ _ p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5hparity:2 ∣ q * (q + 3)⊢ p * (p + 8) % 72 = 65
obtain ⟨k, hk⟩ := hparity p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * k⊢ p * (p + 8) % 72 = 65
have h1 : p * (p + 8) = (6 * q + 5) * (6 * q + 13) := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)⊢ p * (p + 8) % 72 = 65 congr 1 e_a p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * k⊢ p + 8 = 6 * q + 13 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)⊢ p * (p + 8) % 72 = 65; omega p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)⊢ p * (p + 8) % 72 = 65
have h2 : (6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65⊢ p * (p + 8) % 72 = 65 ring p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65⊢ p * (p + 8) % 72 = 65
have h3 : 36 * (q * (q + 3)) = 72 * k := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3✝:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65h3:36 * (q * (q + 3)) = 72 * k⊢ p * (p + 8) % 72 = 65 linarith p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3✝:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65h3:36 * (q * (q + 3)) = 72 * k⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3✝:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65h3:36 * (q * (q + 3)) = 72 * k⊢ p * (p + 8) % 72 = 65
have hprod : p * (p + 8) = 72 * k + 65 := by n:ℕh:ComesFromPrimeQuadruple n⊢ n % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3✝:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65h3:36 * (q * (q + 3)) = 72 * khprod:p * (p + 8) = 72 * k + 65⊢ p * (p + 8) % 72 = 65 linarith p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3✝:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65h3:36 * (q * (q + 3)) = 72 * khprod:p * (p + 8) = 72 * k + 65⊢ p * (p + 8) % 72 = 65 p:ℕhp:Nat.Prime php2:Nat.Prime (p + 2)hp6:Nat.Prime (p + 6)hp8:Nat.Prime (p + 8)hp5:5 ≤ ph2✝:¬2 ∣ ph3✝:¬3 ∣ phmod2:p % 2 = 1hmod3:p % 3 = 2hmod6:p % 6 = 5q:ℕ := p / 6hp_eq:p = 6 * q + 5k:ℕhk:q * (q + 3) = 2 * kh1:p * (p + 8) = (6 * q + 5) * (6 * q + 13)h2:(6 * q + 5) * (6 * q + 13) = 36 * (q * (q + 3)) + 65h3:36 * (q * (q + 3)) = 72 * khprod:p * (p + 8) = 72 * k + 65⊢ p * (p + 8) % 72 = 65
omega All goals completed! 🐙Numbers coming from prime quadruples satisfy $n \equiv 9 \pmod{100}$, except the first value "65".