Prove2Me
Navigate
MissionsFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Counting reduced residues gives Euler's totient

Proved
Vino.card_coprime_filter

by tabbott · Sep 2, 2026 · Mathlib c5ea003 (Lean v4.30.0)

analytic-number-theorycircle-methodnumber-theoryramanujan-sums

The number of aaa with 0≤a<q0\le a<q0≤a<q and (a,q)=1(a,q)=1(a,q)=1 is Euler's totient:

#{a<q:gcd⁡(a,q)=1}=φ(q).\#\{a<q:\gcd(a,q)=1\}=\varphi(q).#{a<q:gcd(a,q)=1}=φ(q).

Mathlib defines φ\varphiφ by the same count but with the arguments of Nat.Coprime in the opposite order; this lemma records that the two agree, and it is what turns counting bounds on Ramanujan sums into bounds in terms of φ\varphiφ.

Preamble
import Definitions.Def_Vino_ramanujan
import Mathlib.Data.Nat.Totient
open Finset
Formal statement
namespace Vino

theorem card_coprime_filter (q : ℕ) :
    (((Finset.range q).filter (fun a => Nat.Coprime a q)).card) = Nat.totient q := by sorry

end Vino
Source
R. C. Vaughan, The Hardy-Littlewood Method, 2nd ed., Cambridge Tracts in Mathematics 125, Cambridge University Press, 1997, Section 2.6 and Chapter 3; G. H. Hardy and E. M. Wright, An Introduction to the Theory of Numbers, 6th ed., Oxford University Press, 2008, Section 16.6 (Ramanujan's sum c_q(n)).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me